
Ich habe derzeit ein großes Problem. Die VPS-Festplatte ist voll, die MySQL-Datenbank ist unerwartet gewachsen und ich kann keinen weiteren Speicherplatz vom Hosting kaufen, da dieser bereits voll ist.
Der MySQL-Dienst kann aus Speicherplatzgründen nicht mehr gestartet werden.
Gibt es eine Möglichkeit, Abfragen in der Datenbank auszuführen, während der Dienst deaktiviert ist? Aber ich schätze, dazu wären einige Tools von Drittanbietern erforderlich, und der Speicherplatz auf dem Server lässt das nicht zu. Wenn ich mich nicht irre, wird die Datenbank nicht verkleinert, selbst wenn ich einige alte Daten aus ihr lösche.
Ich kann nicht einmal die gesamten Datenbankdateien auf meinen Computer herunterladen und versuchen, sie dort neu zu erstellen, weil sie so groß ist, dass ich kein Laufwerk habe, auf das sie passen würden.
Welche Möglichkeiten habe ich jetzt? Hat jemand eine Idee, was ich als nächstes tun könnte?
Antwort1
MySQL läuft nicht als Root, daher haben Sie wahrscheinlich noch „reservierten“ freien Speicherplatz. Sie können diesen freigeben: tune2fs -m 0 /dev/whatever
.
Sie haben nicht gesagt, welches Betriebssystem Sie haben, aber Sie können wahrscheinlich woanders Platz freigeben. Wenn Sie Ubuntu haben, versuchen Sie es mit apt clean
. Entfernen Sie Protokolldateien aus /var/log/*
, usw.
Wenn Sie noch etwas installieren können, verwenden Sie „Installieren“ ncdu
und „Ausführen“, ncdu -x /
um einen einfachen Überblick darüber zu erhalten, was gelöscht werden soll.
Ein Trick, den ich oft anwende, ist, irgendwo eine Dummy-Datei von ein paar hundert MB zu haben, die gelöscht werden kann, wenn Sie in diese Situation geraten. Das und natürlich die Überwachung.
Sobald Sie Platz haben, müssen Sie OPTIMIZE TABLE
auf der fehlerhaften Tabelle ausführen. Dies führt jedoch zu einer Neuerstellung, sodass Sie dafür zusätzlichen Platz benötigen. Außerdem muss es mit ausgeführt werden innodb_file_per_table
, was heutzutage die Standardeinstellung ist.