GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

MySQL-Fehlertabelle „mysql.servers“ existiert nicht

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 
MySQL-Fehlertabelle „mysql.servers“ existiert nicht wurde zuletzt geändert:1. Dezember 2016 von Esteban Borges
Cent OS
  1. Webserver mit Lastenausgleich und MySQL-Server

  2. Fehler 1130 Verbinden mit Mysql auf Ubuntu Server 12.04?

  3. Löschen Sie Tabellen in MySQL

  4. MySQL - FEHLER 1045 - Zugriff verweigert

  5. Pthread-Mutex-Assertion-Fehler

So reparieren Sie die MySQL-Datenbank

So exportieren Sie eine Tabelle von MySQL nach CSV

So optimieren Sie MySQL-Tabellen

So löschen Sie eine Tabelle in MySQL

Spickzettel für MySQL-Befehle

So verwenden Sie MySQL-Trigger