Al intentar otorgar privilegios a un usuario de MySQL en un servidor CentOS 6.x simple, recibí este error en la consola de mysql:la tabla de errores de MySQL 'mysql.servers' no existe
Me sorprendió... lo primero que me vino a la mente fue "la base de datos mysql se corrompió", y de hecho ese era el problema. La tabla mysql.user definitivamente debería existir en las instalaciones normales de MySQL, por lo que algo se arruinó en la instalación de MySQL.
Reparar la tabla de errores de MySQL 'mysql.servers' no existe error
Intente verificar si mysql.user existe
use mysql; select * from user;
Lo primero que intenté solucionar este problema fue reinstalar la base de datos mysql para volver a crear todas las tablas predeterminadas de mysql iniciando MYSQL sin ningún privilegio:
/usr/bin/mysql --skip-grant-tables & mysql -u root
Luego intente ejecutar esto como root desde la terminal de Linux:
mysql_install_db
Después de eso, eliminó el proceso anterior de MySQL y reinició MYSQL normalmente:
ps -aux | grep mysql
Y mata a -9 todo el proceso.
service mysqld restart
Si eso no resuelve su problema, verifique los permisos de su directorio de datos MySQL, tal vez cambiaron de alguna manera.
Última opción:crear un volcado mysql completo de cada base de datos , elimine mysql por completo y vuelva a instalarlo desde cero.
Cree copias de seguridad de cada base de datos:
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
Compruebe si sus copias de seguridad están bien:
ls -alh /root/mysql-dump*
Eliminar el servidor MySQL
yum remove mysql-server rm /var/lib/mysql -rf
Vuelva a instalar el servidor MYSQL
yum install mysql-server service mysql start
Cree todas las bases de datos manualmente, al igual que los privilegios y los usuarios de mysql, y luego descargue sus copias de seguridad .sql en cada base de datos.
Conclusión
Como viste, la única solución que encontré para esto fue eliminar mysql por completo y reinstalarlo desde cero. Sin embargo... ¿conoce alguna otra solución para el error de la tabla de errores MySQL 'mysql.servers' no existe?
Lectura adicional:
- MySQL no puede encontrar la tabla