MySQL Datenverzeichnis verschieben: Server startet nicht mehr

Ich hatte unter Linux (Ubuntu 8.04) das Problem, dass ich meine Festplatte nur in zwei Partitionen eingeteilt habe, wobei nur in /home ausreichend Platz zur Verfügung stand. Unter /var/lib/mysql reichte der Platz nicht aus.

Da MySQL ja gut konfigurierbar ist, habe ich den mysqld gestoppt, in der /etc/mysql/my.cnf den Wert datadir = /var/lib/mysql auf /home/mysql gesetzt und die bestehenden Daten dorthin verschoben.

Danach startete mysqld aber nicht mehr, allerdings ohne jegliche Fehlermeldung. Auch in der Mysql-Errorlog war nichts zu finden. In /var/log/messages wurde ich dann fündig. Dort stand ein profanes:

audit(1216029237.097:20): type=1503 operation=”inode_permission” requested_mask=”rw::” denied_mask=”rw::” name=”/home/mysql/ibdata1″ pid=23521 profile=”/usr/sbin/mysqld” namespace=”default”

Nach einigem Suchen fand ich unter bugs.launchpad.net die Lösung. Schuld ist wohl ein Dienst namens “apparmor”. In dessen /etc/apparmor.d/usr.sbin.mysqld Konfig müssen nur folgende Zeilen irgendwo zwischen die {} eingetragen werden:

/home/mysql/ r,
/home/mysql/** rwk,

Wenn der mysql-Datenpfad nicht /home/mysql ist muss das natürlich auch entsprechend angepasst werden. Dannach per /etc/init.d/apparmor restart den Dienst neu laden und dann lässt sich der mysqld auch wieder korrekt starten.

Schreibe einen Kommentar

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