Was für eine unschöne Fehlermeldung, die zudem noch einen Neustart von MySQL auf der Konsole gänzlich verhindert:

Access denied for user ‚debian-sys-maint’@’localhost‘ (using password: YES)

Die Aussage ist klar! Dem speziellen MySQL System-User debian-sys-maint fehlen unter Debian die notwendigen Berechtigungen, eine gewünschte Aktion auszuführen. Andere Betriebssysteme lassen den Neustart von MySQL vom User root durchführen, jedoch geht hier Debian einen etwas sichereren Weg und nutzt hierfür einen separaten Account.

Dieser wird bei der Installation von MySQL automatisch angelegt und bekommt hierbei alle notwendigen Berechtigungen sowie ein generiertes Passwort. Normalerweiser muss man hier nichts ändern, außer man installiert den Server neu und spielt aus dem Backup auch die MySQL User-Tabellen wieder ein. Nun stimmen die Passwörter nicht mehr überein und debian-sys-maint@localhost kann sich nicht mehr authentifizieren.

Zwei Lösungen

1. Das Passwort unter /etc/mysql/debian.cnf auf das in der Datenbank hinterlegte ändern, wenn man es kennt. Hierbei ist zu beachten, dass das Passwort in dieser Datei doppelt hinterlegt ist und auch an beiden Stellen geändert werden muss.

mcedit /etc/mysql/debian.cnf

2. Das Passwort in der MySQL-Datenbank auf das in der /etc/mysql/debian.cnf hinterlegte ändern. Hierfür entweder mit phpMyAdmin unter dem Menüpunkt „Rechte“ für diesen Nutzer das Passwort ändern oder die folgenden Schritte auf der Konsole durchführen:

mysql -uroot -p
mysql> grant all privileges on *.* to 'debian-sys-maint'@'localhost' identified by 'GEHEIM!' with grant option;
Query OK, 0 rows affected (0.04 sec)
mysql> exit;
Bye
/etc/init.d/mysql restart

Bitte bei den Passwörtern kreativ sein und etwas kryptisches generieren (hierfür gibt es auch Programme) lassen. Wann gibt man ein MySQL-Passwort schon mal per Hand ein? Es hat also keinen Nutzen, hier potentiellen Angreifern die Arbeit zu erleichtern, nur weil man sich „adm!n“, „schatzi“ oder „meiSQL“ besonders gut merken kann!