MySQL 5.6.11 error 1146

Al parece hay algún tipo de error en la instalación de algunas versiones de MySQL o en la actualización de algunas (a mi me ha pasado actualizando de la 5.6.10 a la 5.6.11), en el cual te pueden dar los siguientes errores:

ERROR 1146 (42S02) at line 36: Table 'mysql.innodb_table_stats' doesn't exist
ERROR 1146 (42S02) at line 45: Table 'mysql.innodb_index_stats' doesn't exist
ERROR 1146 (42S02) at line 73: Table 'mysql.slave_relay_log_info' doesn't exist
ERROR 1146 (42S02) at line 102: Table 'mysql.slave_master_info' doesn't exist
ERROR 1146 (42S02) at line 120: Table 'mysql.slave_worker_info' doesn't exist

Sin embargo si entras en un administrador de MySQL como SQLYog puedes ver que las tablas existen pero luego al intentar abrirlas te sale el error

Error CODE: 1146 TABLE ‘mysql.innodb_table_stats’ doesn’t exist

Esto ocurre al tener activada en nuestro my.cnf la opción innodb_file_per_table. Al parecer al actualizar MySQL se borran estas tablas y falla la creación de las mismas dejando en el servidor los archivos ibd (el espacio de tablas de InnoDB).

Para corregir este fallo lo que debemos hacer es lo siguiente:

  1. borrar los archivos ibd correspondientes a todas estas tablas
  2. ejecutar la consulta DELETE table para cada una de ellas, no importa que nos de error, es muy importante ejecutarla.
  3. crear nuevamente estas tablas.

La definición de las mismas la podemos encontrar en esta web.

Espero que os sirva.

Comentarios

Unknown ha dicho que…
Disculpa como borro los archivos ibd correspondientes a todas estas tablas?

Espero tu respuesta gracias (:
Reynier ha dicho que…
Ahora no recuerdo el comando en linux, pero es el comando normal de borrado de archivos