Überarbeitung Fraktal postrotate Pavillonstrasse

wall < "error: error running shared postrotate script for /var/log/mysql.log"

Broadcast message from spillerm@unixe.de (pts/1) (Do Aug 16 23:12:31 2007):
4
Diesen Beitrag schrieb ich vor 11 Jahren. Behalte das beim Lesen bitte im Hinterkopf.

Nach Aufsetzen eines mySQL-Servers unter Debian bekam ich einige Nächte in Folge diese Mail:

Das Problem liegt darin begründet, dass es den benötigten User nicht gibt. Informationen zu diesem User sind in '/etc/mysql/debian.cnf' zu finden; bei mir sieht das etwa so aus:

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint
password = <$PASSWORT>
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
user     = debian-sys-maint
password = <$PASSWORT>
socket   = /var/run/mysqld/mysqld.sock
basedir  = /usr

Den hier genannten User debian-sys-maint brauchen wir — innerhalb mysql. Das geht aber ganz schnell und unkompliziert; <$PASSWORT> entspricht natürlich dem String, der an dieser Stelle bei Euch steht:

$ mysql -u root -p
Enter password:
mysql> create user 'debian-sys-maint'@'localhost'
  -> identified by '<$PASSWORT>';

Aber der nun erstellte User braucht aber auch Rechte auf die Datenbanken; wer das fein aufteilen möchte, kann dies gerne tun ;) Ich habe mir mit einem

mysql> grant all privileges on *.*
  -> to 'debian-sys-maint'@'localhost'
  -> identified by '<$PASSWORT>';

beholfen. Anschliessend nicht vergessen:

mysql> flush privileges;
4
  1. Auch nach 10 Jahren scheint es noch zu helfen.
    In meinem Fall wurde bei der Installation von MariaDB kein root-Passwort gesetzt, welches ich aber anschließend per Hand getan hatte. Nun hat Ubuntu versucht sich genau in der debian.cnf mit root ohne Passwort einzuloggen, welches natürlich fehlschlug.
    Nachdem ich diesen sehr hilfreichen Artikel gelesen habe, habe ich mir einen neuen Benutzer angelegt und ihm alle Rechte gegeben. Diesen habe ich anschließend in die debian.cnf eingetragen. Das wars. Es hat super funktioniert.

    Vielen Dank nochmal.

  2. Hi,

    der Hinweis ist sehr hilfreich und glücklicherweise auch auf Platz 1 bei Google ;)

    Kleiner Tipp… man kann sich die Sache vereinfachen. Es reicht vollkommen aus:

    mysql> GRANT ALL PRIVILEGES ON *.* TO
    debian-sys-maint@localhost IDENTIFIED BY 'PASSWORD';
    Query OK, 0 rows affected (0.15 sec)

    ohne vorheriges CREATE oder nachträglichem FLUSH ;)


    mysql> SHOW GRANTS FOR
    debian-sys-maint@localhost;
    +----------------------------------------------------------------------------------------------------------------------------------+
    | Grants for debian-sys-maint@localhost |
    +----------------------------------------------------------------------------------------------------------------------------------+
    | GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY PASSWORD '*B68A8C89143D9AadfEDC28DEasdfC971B0DAA12B3' |
    +----------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)

  3. Nochmal danke, schon das zweite Mal gegoogled und das zweite Mal geholfen :)

  4. Das hat geholfen. Danke!

  5. bei grant all privileges fehlt das ‚ nach dem passwort :)
    ansonsten sehr gut beschrieben wie das problem zu lösen ist -> vor allem interessant wenn man die datenbank auf einem neuen server einspielt wird das gerne mal vergessen

Keine weitere Reaktionen mehr möglich.