--- title: "MySQL/MariaDB : 'InnoDB: Cannot open table'" date: 2017-07-23T18:49:10+02:00 description: "Résoudre l'erreur 'InnoDB: Cannot open table' pour MySQL/MariaDB" draft: false tags: ["SQL", "InnoDB", "erreur", "astuce"] timestamp: 1500835750 --- ## Description Voici un autre petit truc et astuce, si dans vos log, vous avez le message d'erreur suivant : `[Warning] InnoDB: Cannot open table mysql/gtid_slave_pos from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/ ... oting.html for how you can resolve the problem.` Ce message d'erreur peut-être à-propos des tables : * `mysql/gtid_slave_pos` * `mysql/innodb_index_stats` * `mysql/innodb_table_stats` D'autres tables peuvent être concernées ! Sachez que c'est une erreur qui arrive, généralement, après une mise-à-jour du serveur ! ## Dépannage La meilleure manière de le résoudre est : - de **supprimer les fichiers .frm et .idb relatifs à ces tables**, non mises-à-jour correctement. - d'**arrêter le serveur, puis le démarrer** - et *non pas redémarrer* le serveur ! - d'exécuter, en suivant, l'outil `mysql_upgrade` avec l'option `--force` par le compte administrateur de MySQL/MariaDB, tel que :
`# mysql_upgrade --force -u admin_db -p` {{< note warning>}} Il est possible de trouver des scripts qui vous disent d'injecter le code SQL pour recréer les tables défectueuses de la base de données mysql - **ne le faites pas ; privilégiez vraiment la méthode ci-dessus** ! {{}} ---