Beitrag wurde zuletzt am aktualisiert

Access denied for user debian-sys-maint

MySQL: Access denied for user debian-sys-maintMySQL: Access denied for user debian-sys-maint

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!

5 Kommentare zu "Access denied for user debian-sys-maint"

  1. Danke für den hilfreichen Post!
    Allerdings sollte die Syntax beachtet werden… :)

    Der korrekte Befehl lautet:
    grant all privileges on *.* to ‚debian-sys-maint’@’localhost‘ identified by ‚poLzicg8GAtYG3Sz‘ with grant option;

    Hochkommata statt einfacher Anführungszeichen… dann klappt es!

  2. was mache ich denn, wenn ich das mysql-root password nicht mehr habe?
    mysql -uroot -p
    an dieser stelle komme ich leider schon nicht mehr weiter.
    Gruß

  3. Zu erwähnen wäre noch, das man FLUSH PRIVILEGES; nicht vergessen sollte.

    TuXoran

Hinterlasse einen Kommentar

E-Mail Adresse wird nicht veröffentlicht.