GNU/Linux >> Linux Esercitazione >  >> Cent OS

La tabella degli errori MySQL "mysql.servers" non esiste

Durante il tentativo di concedere privilegi a un utente MySQL su un semplice server CentOS 6.x, stavo ricevendo questo errore sulla console mysql:la tabella degli errori MySQL "mysql.servers" non esiste

Sono rimasto sorpreso ... la prima cosa che mi è venuta in mente è stata "il database mysql è stato danneggiato", e in effetti questo era il problema. La tabella mysql.user dovrebbe sicuramente esistere nelle normali installazioni di MySQL, quindi qualcosa è stato incasinato nell'installazione di MySQL.

Correzione della tabella di errori MySQL "mysql.servers" non esiste errore

Prova a verificare se mysql.user esiste

use mysql;
select * from user;

La prima cosa che ho provato a risolvere questo problema è stata reinstallare il database mysql per ricreare tutte le tabelle predefinite di mysql avviando MYSQL senza alcun privilegio:

/usr/bin/mysql --skip-grant-tables &
mysql -u root

Quindi ho provato a eseguirlo come root dal terminale Linux:

mysql_install_db

Successivamente, hai terminato il precedente processo MySQL e riavviato MySQL normalmente:

ps -aux | grep mysql

E uccidi -9 per tutto il processo.

service mysqld restart

Se ciò non risolve il tuo problema, controlla le autorizzazioni della directory dei dati MySQL, forse sono cambiate in qualche modo.

Ultima opzione:crea un dump MySQL completo di ogni database , rimuovi completamente mysql e reinstallalo da zero.

Crea backup di ogni database:

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

Controlla se i tuoi backup sono ok:

ls -alh /root/mysql-dump*

Rimuovi il server MySQL

yum remove mysql-server
rm /var/lib/mysql -rf

Reinstalla MySQL Server

yum install mysql-server
service mysql start

Crea tutti i database manualmente, come i privilegi e gli utenti mysql, quindi esegui il dump dei backup .sql in ciascun database.

Conclusione

Come hai visto, l'unica soluzione che ho trovato per questo è stata rimuovere completamente mysql e reinstallarlo da zero. Tuttavia... conosci qualche altra correzione per l'errore MySQL Error Table "mysql.servers" non esiste?

Ulteriori letture:

  • MySQL non riesce a trovare la tabella 
La tabella degli errori MySQL "mysql.servers" non esiste è stata modificata l'ultima volta:1 dicembre 2016 da Esteban Borges
Cent OS
  1. Server Web con bilanciamento del carico e server MySQL

  2. Come riparare la tabella del database MySQL danneggiata

  3. Errore 1130 Connessione a MySQL su Ubuntu Server 12.04?

  4. ERRORE:la stored procedure non esiste

  5. Elimina tabelle in MySQL

Come riparare il database MySQL

Come esportare una tabella da MySQL a CSV

Come ottimizzare le tabelle MySQL

Come eliminare una tabella in MySQL

Foglio informativo sui comandi MySQL

Come utilizzare i trigger MySQL