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