GNU/Linux >> Tutoriales Linux >  >> Cent OS

La tabla de errores de MySQL 'mysql.servers' no existe

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 
La tabla de errores de MySQL ‘mysql.servers’ no existe fue modificada por última vez:1 de diciembre de 2016 por Esteban Borges
Cent OS
  1. Cómo reparar una tabla de base de datos Mysql dañada

  2. ¿Error 1130 al conectarse a Mysql en Ubuntu Server 12.04?

  3. ERROR:El procedimiento almacenado no existe

  4. Cambiar el nombre de la base de datos MySQL

  5. Error de mysql datetime DEFAULT CURRENT_TIMESTAMP

Cómo reparar la base de datos MySQL

Cómo exportar una tabla de MySQL a CSV

Cómo optimizar tablas MySQL

Cómo soltar una tabla en MySQL

Hoja de referencia de comandos de MySQL

Cómo usar disparadores de MySQL