MySQL Fehler "The partition with /var/lib/mysql is too full!"

seegras

New Member
Hallo,
ich habe eben feststellen müssen dass mein MySQL Server nicht mehr starten will, beim Versuch erhalte ich nur folgende Fehlermeldung:

Code:
[FAIL] /etc/init.d/mysql: ERROR: The partition with /var/lib/mysql is too full! ... failed!

Meine aktuelle Festplattenbelegung sieht wie folgt aus

Code:
Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
rootfs           20G     19G     0  100% /
/dev/root        20G     19G     0  100% /
devtmpfs        7,8G       0  7,8G    0% /dev
tmpfs           1,6G    348K  1,6G    1% /run
tmpfs           5,0M       0  5,0M    0% /run/lock
tmpfs           3,3G       0  3,3G    0% /dev/shm
/dev/sda2       898G     72M  852G    1% /home

Liegts dadran, dass rootfs "voll" ist? Was kann ich als Problemlösung machen?
Bei dem Server handelt es sich um den KS-4 von Kimsufi (OVH) in der Standardpartitionierung

Grüße
seegras
 
Seltsam partitioniert.
So wenig für / und zu viel für /home.


Gibt einige Möglichkeiten.

Für /var auf eigene Partition erzeugen und alte Daten dort hin verschieben

oder

Verzeichnis erstellen auf HD/Partition mit mehr Platz
Alte Inhalte aus /var/lib/mysql dort hin verschieben
Nun /var/lib/mysql link auf das Verzeichnis legen

oder
Abschnitt mysqld der my.conf editieren
datadir auf das neue Verzeichnis
Alte Inhalte aus /var/lib/mysql dort hin verschieben
 
Last edited by a moderator:
Das, was du in /home hast, könntest du vorübergehend irgendwo auf nem anderen Server schieben/zu Hause herunterladen. Dann kannst du nämlich schön /home auflösen, die Partitionierung erweitern (Vorsicht ist geboten) und ein extend auf die rootfs Partition machen.

Das ganze ist meines Wissens nach aber leider nur möglich, wenn deine rootfs Partition vor deiner auflösenden Partition liegt.
 
Wenn du schon /home auflöst (was angesichts der <100MB darin nicht weiter schwer sein dürfte), dann mach da doch ein LVM2 draus und leg dir darin dann Volumes für /var, /home und /tmp an. Und dann verteilst du nicht gleich alles, sondern lässt ne ordentliche Portion ungenutzt. Das kannst du dann bei Bedarf zu Volumes, die zu klein geworden sind hinzugeben.
 
Last edited by a moderator:
Logische Volumes hatte ich bei Partions mitgemeint. Ok, war schlampig ausgedrückt.

Aber es spricht überhaupt nichts dagegen, den Platz der Part von /home zu nutzen, die Partition zu verkleinern und dann aufzuteilen.
 
Ich kenn mich mit dem Thema Partionierung unter Linux/Debian nicht sonderlich gut aus, wenn mir dabei vielleicht einer kurz helfen könnte wäre das super :)
 
Code:
man parted

Ist eigentlich keine Raketenwissenschaft, zumal man damit i.d.R. auch im Worst Case "nur" die Partitionstabelle grillt - die Daten selbst liegen auch dann auf der Platte, wenn man die Partition gelöscht hat.
 
Solange die Daten nicht defragmentiert sind (auf Linux selten), kann die Partition verkleinert werden.
Ansonsten in SingleUser-Modus gehen und mit e2fsck -f /dev/sda2 das Filesystem prüfen.

Und es gibt noch so Tools zum Deframentieren der Dateisysteme wie edefrag | e2defrag | mdefrag | xdefrag, aber ich weiß da nicht mehr drüber wie das hinhaut.
 
Last edited by a moderator:
In kurz:

1. Inhalt von /home sichern
2. /home aus der fstab entfernen und umounten
3. partition type der Partition auf 8e ändern (Linux LVM)
4. Partition zum Physical Volume machen (pvcreate)
5. Volume Group erstellen (vgcreate)
6. Logische Volumes erstellen (lvcreate)
7. Logische Volumes in fstab eintragen, mounten und Daten verschieben (Reihenfolge etwas an die Erfordernisse anpassen. Das Daten verschieben muss eh im Rescue gemacht werden, weil ja sonst alles mögliche in /var geöffnet ist)
8. ???
9. Profit!

Bei 7. drauf achten, dass alle Berechtigungen/Ownerships erhalten bleiben.
 
Da ich den Server eh grade erst bekommen habe und noch nichts weltbewegendes drauf installiert ist, hab ich mich entschlossen das ganze nochmal Neuzuinstallieren und dabei die Partitionierung gleich richtig zu machen

Wie würdet ihr die Verteilung jetzt ändern?

per-Default wird halt folgendes Angeboten
 

Attachments

  • ss+(2014-08-03+at+09.39.56).png
    ss+(2014-08-03+at+09.39.56).png
    36 KB · Views: 292
Pack doch einfach alles in das root-Dateisystem.
Partitionen für Verzeichnisse lohnen sich nur, wenn du bestimmte Mount-Optionen willst. (Z.B. noexec auf /tmp)
 
Last edited by a moderator:
Partitionen für Verzeichnisse lohnen sich nur, wenn du bestimmte Mount-Optionen willst. (Z.B. noexec auf /tmp)
Und das will man ja gerade bei Servern, oder? Außerdem kann man mit einer vernünftigen Partitionierung verhindern, dass z.B. Logfiles voll laufen und der Server steht.

Ich würde extra Partitionen für /tmp und /var machen. Eine eigene Partition /srv für die Daten der Dienste z.B. von Websites hat sich auch bewährt. Dort würde ich dann auch per MySQL-Config die Datenbank ablegen.
 
Back
Top