Verschieben der MySQL-Datenbank

Auf unserem /var-Volume war der Platz knapp geworden; die MySQL-Datenbank war zu stark angewachsen. Um das System noch laufen lassen zu können, war es notwendig, die Datenbank auf ein anderes Dateisystem umzuziehen – in unserem Falle war das auf das /home-Volume.

Um beim Kopieren die Eigentümer und Berechtigungen nicht zu verlieren, habe ich statt mit cp mit cpio kopiert:

cd /var/lib
find mysql | cpio -pdmv /home

Anschließend noch die Logdatei in /var/log umhängen

rm /var/log/mysqld.log 
ln -s /home/mysql/mysqld.log /var/log/mysqld.log

Und die Originalinstallation für den Fall der Fälle sichern:

mv /var/lib/mysql /var/lib/mysql.bak

Im nächsten Schritt geht es darum, der Datenbank mitzuteilen, wo sie sich befindet. Das ist zum einen in der Konfigurationsdatei /etc/my.cnf, aber auch im Startskript /usr/sbin/rcmysql. Dort habe ich alle Vorkommen von /var/lib/mysql in /home/mysql geändert.

Der MySQL-Server lies sich danach zwar starten, für den Client erhielt ich aber dennoch die stereotype Fehlermeldung

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

Etwas googlen brachte zum Vorschein, dass in der my.cf ein Abschnitt [Client] anzulegen sei, der dem Client mitteilt, wo sich diese Socket-Datei befindet. Nur: Dieser Abschnitt war von Anfang an vorhanden, wurde aber offenbar nicht beachtet. Daraufhin habe ich mich zu einer etwas unsauberen, aber tadellos funktionierenden Lösung entschieden: Nach einem

ln -s /home/mysql /var/lib/mysql

und einem anschließenden Reboot tut auch der Client wieder, und die Applikationen laufen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.