J'ai mis à niveau vers mysql 5.6 à partir de la version 5.5, et maintenant mes journaux sont jonchés de tels messages au démarrage
J'ai trouvé une solution possible ici, mais cela ne semble pas officiel. 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.
Des solutions officielles ou des solutions à 100%?
mysql_upgrade -u root -p --force && systemctl restart mysqld
met à jour le schéma mysql et tous les dbs, résolvant ce problèmeRéponses:
J'ai déjà abordé ce problème dans: Impossible d'ouvrir la table mysql / innodb_index_stats
Ces tables sont créées pour vous lorsque vous installez MySQL 5.6. Toutefois, la mise à niveau à partir de MySQL 5.5 n’appelle pas la création de ces tables. Voici les scripts pour les créer manuellement:
innodb_index_stats
innodb_table_stats
slave_master_info
slave_relay_log_info
slave_worker_info
ALTERNATIVE
Une autre solution consiste à créer le script à partir d'une instance de MySQL 5.6.
Étape 01 : Allez sur un serveur de base de données exécutant MySQL 5.6 ou installez MySQL 5.6 sur une machine de test.
Étape 02 : mysqldump ces 5 tables dans un fichier texte
Ensuite, vous pouvez exécuter
InnoDB_MySQL_Tables.sql
n'importe quel serveur de base de données exécutant MySQL 5.5 avant la mise à niveau.la source
cat /usr/share/mysql/mysql_system_tables.sql | mysql -uroot -p mysql
ibdata1
fichier. MySQL n'a pas recréé ces tables au démarrage et j'ai dû déplacer manuellement les fichiers représentant les tables hors du répertoire de données MySQL afin d'utiliser lesCREATE
instructions ci-dessus (DROP TABLE
cela ne fonctionnait pas).La réponse de Rolando a fonctionné pour moi avec quelques ajouts. J'ai eu le même problème, avec ces 5 tables montrant via SHOW TABLES, mais SELECT ou d'autres opérations sur la table ont abouti à une table introuvable.
Pour résoudre le problème, en utilisant la réponse de Rolando, je devais:
DROP TABLE <tablename>
- toutes les 5 tablesDans le système de fichiers, supprimez les fichiers .ibd restants (les fichiers .frm ont été supprimés par
DROP TABLE
)J'ai ensuite arrêté et démarré l'instance mysqld (je ne sais pas si c'était nécessaire - cela m'a fait plaisir)
Les
CREATE TABLE
déclarations fournies par Rolando se sont ensuite déroulées sans problème.la source
DROP TABLE <tablename>
j'ai toujours eu leERROR 1051 (42S02): Unknown table '...'
message d'erreur, mais au moins le fichier .frm a disparu à ce moment-là.