Beim Versuch, einem MySQL-Benutzer auf einem einfachen CentOS 6.x-Server Berechtigungen zu erteilen, erhielt ich diesen Fehler in der MySQL-Konsole:MySQL-Fehlertabelle „mysql.servers“ existiert nicht
Ich war überrascht … das erste, was mir in den Sinn kam, war „Mysql-Datenbank wurde beschädigt“, und tatsächlich war das das Problem. Die mysql.user-Tabelle sollte auf normalen MySQL-Installationen definitiv vorhanden sein, also wurde bei der MySQL-Installation etwas vermasselt.
Behebung des Fehlers „MySQL-Fehlertabelle „mysql.servers“ existiert nicht“
Versuchen Sie zu prüfen, ob mysql.user existiert
use mysql; select * from user;
Das erste, was ich versucht habe, um dieses Problem zu beheben, war, die MySQL-Datenbank neu zu installieren, um alle MySQL-Standardtabellen neu zu erstellen, indem ich MYSQL ohne Berechtigungen starte:
/usr/bin/mysql --skip-grant-tables & mysql -u root
Dann versucht, dies als root vom Linux-Terminal aus auszuführen:
mysql_install_db
Beenden Sie danach den vorherigen MySQL-Prozess und starten Sie MySQL normal neu:
ps -aux | grep mysql
Und kill -9 den ganzen Prozess.
service mysqld restart
Wenn das Ihr Problem nicht löst, überprüfen Sie Ihre MySQL-Datenverzeichnisberechtigungen, vielleicht haben sie sich irgendwie geändert.
Letzte Option:erstellen Sie einen vollständigen MySQL-Dump jeder Datenbank , entfernen Sie mysql vollständig und installieren Sie es von Grund auf neu.
Backups jeder Datenbank erstellen:
MYSQLPASS=putyourmysqlrootpasshere for i in $(mysql -u root -p$MYSQLPASS -Bse 'show databases'); do mysqldump --opt -p$MYSQLPASS $i -c> /root/mysql-dump-$i.sql; done
Überprüfen Sie, ob Ihre Backups in Ordnung sind:
ls -alh /root/mysql-dump*
MySQL-Server entfernen
yum remove mysql-server rm /var/lib/mysql -rf
MySQL Server neu installieren
yum install mysql-server service mysql start
Erstellen Sie alle Datenbanken manuell, genauso wie Privilegien und mysql-Benutzer, und sichern Sie dann Ihre .sql-Backups in jeder Datenbank.
Schlussfolgerung
Wie Sie gesehen haben, war die einzige Lösung, die ich dafür gefunden habe, mysql vollständig zu entfernen und von Grund auf neu zu installieren. Aber… kennen Sie eine andere Lösung für den Fehler „MySQL-Fehlertabelle „mysql.servers“ existiert nicht“?
Weiterführende Literatur:
- MySQL kann Tabelle nicht finden