Actualicé a mysql 5.6 desde 5.5, y ahora mis registros están llenos de tales mensajes al inicio
Encontré una posible solución aquí, pero no parece oficial. http://forums.mysql.com/read.php?22,578559,579891#msg-579891
2013-12-06 21:08:00 7f87b1d26700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.
2013-12-06 21:08:00 7f87b1d26700 InnoDB: Recalculation of persistent statistics requested for table "drupal"."sessions" but the required persistent statistics storage is not present or is corrupted. Using transient stats instead.
2013-12-06 21:08:07 7f903c09c700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.
¿Alguna solución oficial o solución al 100%?
mysql_upgrade -u root -p --force && systemctl restart mysqld
actualiza el esquema mysql y todos los dbs, resolviendo este problemaRespuestas:
Anteriormente abordé este problema en: No se puede abrir la tabla mysql / innodb_index_stats
Estas tablas se crean para usted cuando instala MySQL 5.6. Sin embargo, la actualización desde MySQL 5.5 no invoca la creación de estas tablas. Aquí están los scripts para crearlos manualmente:
innodb_index_stats
innodb_table_stats
slave_master_info
slave_relay_log_info
slave_worker_info
ALTERNATIVA
Otra solución sería crear el script desde una instancia de MySQL 5.6.
Paso 01 : vaya a un servidor DB que ejecute MySQL 5.6 o instale MySQL 5.6 en una máquina de prueba.
Paso 02 : mysqldump estas 5 tablas en un archivo de texto
Luego, puede ejecutar
InnoDB_MySQL_Tables.sql
en cualquier servidor DB que ejecute MySQL 5.5 antes de actualizar.fuente
cat /usr/share/mysql/mysql_system_tables.sql | mysql -uroot -p mysql
ibdata1
archivo. MySQL no volvió a crear estas tablas al inicio y tuve que mover manualmente los archivos que representan las tablas fuera del directorio de datos de MySQL para poder usar lasCREATE
declaraciones anteriores (DROP TABLE
no funcionó).La respuesta de Rolando funcionó para mí con algunas adiciones. Tuve el mismo problema, con estas 5 tablas que se muestran a través de SHOW TABLES, pero SELECT u otras operaciones en la tabla resultaron en una tabla no encontrada.
Para resolver el problema, usando la respuesta de Rolando, necesitaba:
DROP TABLE <tablename>
- las 5 mesasEn el sistema de archivos, elimine los archivos .ibd restantes (los archivos .frm fueron eliminados por
DROP TABLE
)Luego paré y comencé la instancia de mysqld (no sé si era necesario, me hizo feliz)
Las
CREATE TABLE
declaraciones que Rolando proporcionó luego se publicaron sin problemas.fuente
DROP TABLE <tablename>
, recibí elERROR 1051 (42S02): Unknown table '...'
mensaje de error, pero al menos el archivo .frm desapareció para entonces.