Ich arbeite an einem Projekt, in dem ich eine Datenbank mit 300 Tabellen für jeden Benutzer erstellen muss, der die Demoanwendung sehen möchte. Es hat gut funktioniert, aber heute, als ich mit einem neuen Benutzer getestet habe, um eine Demo zu sehen, wurde mir diese Fehlermeldung angezeigt
1030 Got error 28 from storage engine
Nachdem ich einige Zeit gegoogelt hatte, stellte ich fest, dass es sich um einen Fehler handelt, der mit dem Speicherplatz der Datenbank oder temporären Dateien zusammenhängt. Ich habe versucht, es zu beheben, aber ich bin gescheitert. Jetzt kann ich nicht einmal MySQL starten. Wie kann ich das beheben und ich möchte auch die Größe auf Maximum erhöhen, damit ich nicht immer wieder mit dem gleichen Problem konfrontiert werde.
/tmp
Ordner ist zu 100% belegt. Ist es in Ordnung, einfach alle Dateien aus diesem / tmp-Ordner zu löschen? Und noch eine Frage, warum es nicht automatisch gelöscht wird?Antworten:
MySQL-Fehler " 28 von der Speicher-Engine " - bedeutet " nicht genügend Speicherplatz ".
Verwenden Sie den folgenden Befehl, um den Speicherplatz anzuzeigen.
Die Ergebnisse müssen so sein.
quelle
Um dies zu erweitern (obwohl es sich um eine ältere Frage handelt); Es geht wahrscheinlich nicht um den MySQL-Speicher selbst, sondern um Speicherplatz im Allgemeinen, vorausgesetzt, es handelt sich um tmp-Dateien oder ähnliches. Mein MySQL-Datenverzeichnis war nicht voll, die Partition / (root) war
quelle
Ich hatte das gleiche Problem in AWS RDS. Es lag daran, dass der Freeable Space (Festplattenspeicher) voll war. Sie müssen Ihren Speicherplatz vergrößern oder einige Daten entfernen.
quelle
Mein / tmp war% 100. Nach dem Entfernen aller Dateien und dem Neustart von MySQL funktionierte alles einwandfrei.
quelle
Mein Ordner / var / log / apache2 war 35 g schwer und einige Protokolle in / var / log waren insgesamt die anderen 5 g meiner 40 g Festplatte. Ich habe alle * .gz-Protokolle gelöscht und nachdem ich sichergestellt hatte, dass die anderen Protokolle keine schlechten Dinge tun würden, wenn ich mit ihnen herumspielen würde, habe ich sie auch gelöscht.
etc.
quelle
truncate
, um Protokolle zu löschen,truncate -s 0 access.log
Überprüfen Sie Ihre / backup, um festzustellen, ob Sie eine ältere, nicht benötigte Sicherung löschen können.
quelle
Ich hatte ein ähnliches Problem aufgrund meiner Replikations- Binärprotokolle.
Wenn dies der Fall ist, erstellen Sie einfach einen Cronjob, um diese Abfrage jeden Tag auszuführen:
Dadurch werden alle Binärprotokolle entfernt, die älter als 2 Tage sind.
Ich habe diese Lösung hier gefunden .
quelle
Ein einfaches: $ sth-> finish (); Würde Sie wahrscheinlich davor bewahren, sich darüber Sorgen zu machen. MySQL verwendet den tmp-Speicher des Systems anstelle des eigenen Speicherplatzes.
quelle
und zuletzt geben Sie ein:
> mysql-slow.log
Das hat bei mir funktioniert
quelle
Löschen Sie die Problemdatenbank und starten Sie den MySQL-Dienst neu (
sudo service mysql restart
zum Beispiel).quelle