Bonjour,

Après un redémarrage docker d'hier soir, je détecte une corruption dans une de mes tables

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 mysqlcheck  -u fadace -p -h mariadb-p01 -P 33041 --check mabase
...
cpval.soc
Error    : Table 'mabase.soc' doesn't exist in engine
status   : Operation failed
La base est là si je vais un show tables

Les fichiers sont physiquement présents
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
[root@mariadb-p01 cpval]# ll soc*
-rw-r--r--. 1 systemd-bus-proxy ssh_keys   3858 Nov 25 12:02 soc.frm
-rw-r--r--. 1 systemd-bus-proxy ssh_keys 114688 Nov 25 12:02 soc.ibd
La restauration d'un fichier (et de la base complète) d'avant-hier ne résoud rien

J'essaie de supprimer la table et ses fichiers

Si je recrée la table, il me spécifie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ERROR 1050 (42S01): Table '`mabase`.`soc`' already exists
Si j'essaie de la suppimer
MariaDB [cpval]> drop table soc ;
ERROR 1051 (42S02): Unknown table 'mabase.soc'

La recréation a malgré tout ajouté un fichier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
[root@mariadb-p01 mabase]# ls -l soc*
-rw-rw----. 1 systemd-bus-proxy ssh_keys 65536 Nov 25 13:12 soc.ibd
qui fait que si j'essaie d'importer, je reçois un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
ERROR 1813 (HY000) at line 11: Tablespace for table '`cpval`.`soc`' exists. Please DISCARD the tablespace before IMPORT

Si je remonte cette table sur un autre nom, aucun souci
Si je renomme cette table sous un 3e nom, aucun souci : les fichiers ibd et frm sont renommés et la table aussi
Si je renomme cette table a son nom d'origine :
ERROR 1050 (42S01): Table './mabase/soc' already exists

... bien qu'aucun ficher soc.* n'existe plus

Il doit forcément y avoir une corruption au niveau du catalogue car si je recrée la base from scratch (= je supprime la base et je la laisse recréer par le script SQL d'import), je me ramasse un mabase.soc already exists (sur une base donc créée par le script)
Par contre, si je spécifie un autre nom pour la base dans le script, la création se passe sans encombre.