Heute wies mich eine unserer Websites auf Arbeit mit einem Datenbank Zugriffsfehler zurück. Ich versuchte mich dann mal als root mit der Datenbank zu verbinden, wo ich die Fehlermeldung bekam das ich keine Rechte hätte auf diese zuzugreifen. Da ich das System erst letzte Woche neu gemacht hab, da das vorherige Uralt war, dachte ich erst das eines der Skripte meiner Kollegen das root Passwort geändert hat, aber selbst das alte Passwort tat es auch nicht. So startete ich dann mal die die Datenbank ohne Passwort um das root Passwort zu resetten:
mysqld_safe --skip-grant-tables &
mysql -u root
mysql> use mysql;
Allerdings bekam ich schon hier mitgeteilt das die DB mysql nicht exisitiert, also lies ich mir mal alles anzeigen, nur da war nichts. Ganz toll dacht ich mir. In der error.log von mysql stand nur folgende beiden Errormeldungen:
140827 17:54:17 [ERROR] mysql.user has no `Event_priv` column at position 29
140827 17:54:17 [ERROR] Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler.
Dazu fand ich nur nicht viel, nur den Hinweis das die mysql DB corrupt sein kann und das dies durch ein Update geschehen sein kann. Also mysql DB neu anlegen:
service mysql stop
rm -r /var/lib/mysql/mysql
mysql_install_db
service mysql start
Siehe da, plötzlich tauchen auch alle Datenbanken wieder auf. Nun nur wieder ein root Passwort setzen:
/usr/bin/mysqladmin -u root password 'new_password'
Das ganze muss passiert sein bei einem Update des mysql-servers von Version 5.5.35+dfsg-1ubuntu1 auf 5.5.38-0ubuntu0.14.04.1.