MySQL startet nach Ubuntu-10.04-Update nicht mehr

platz für zwei

platz für zwei von leicagirl (photocase.de)

28.5.2010

Hat das MySQL-Datenverzeichnis nicht den Standardpfad, muss die Apparmor-Konfiguration für MySQL angepasst werden.

Als Entwicklungsumgebung läuft bei mir ein Ubuntu 10.04 in einer Virtualbox. Die gestrige Softwareaktualisierung enthielt unter anderem ein Update der MySQL-Pakete. Leider blieb die Aktualisierung immer bei der Einrichtung von MySQL hängen.

Im Syslog fand ich folgende Meldungen:

May 28 11:07:35 vbox-dev mysqld: 100528 11:07:35 [Warning] Can't create test file /mnt/mysql/data/vbox-dev.lower-test
May 28 11:07:35 vbox-dev kernel: [ 5954.840470] type=1503 audit(1275037655.858:54): operation="mknod" pid=14264 parent=14132 profile="/usr/sbin/mysqld" requested_mask="c::" denied_mask="c::" fsuid=0 ouid=0 name="/mnt/mysql/data/vbox-dev.lower-test"

Die Dateiberechtigungen waren eigentlich korrekt gesetzt, der Benutzer mysql durfte Dateien anlegen in dem Verzeichnis. Aber durch einen Blogeintrag fand ich dann auf die richtige Spur: Apparmor ist der Bösewicht.

Da ich nicht das Standardverzeichnis für die MySQL-Datenbanken verwende, fehlte eine Regel in der Konfiguration von MySQL für Apparmor

# Datei /etc/apparmor.d/usr.sbin.mysqld
/usr/sbin/mysqld {
...
# man muss die Regeln für das Standarddatenverzeichnis
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
# ersetzen durch eine Regel für das eigene Datenverzeichnis
/mnt/mysql/data/ r,
/mnt/mysql/data/** rwk,
...
}

Danach Apparmor und MySQL neu starten:

/etc/init.d/apparmor restart
start mysql

Fehlermeldungen von Apparmor befinden sich in /var/log/kern.log. Hilfreich ist auch die Installation des Pakets apparmor-notify. Es zeigt in einem Popup-Fenster auf dem Desktop die durch Apparmor blockierten Zugriffe.

Auf ubuntuusers.de gibt es mehr Informationen zu Apparmor.

Gespeichert unter: Systemadministration