Changement de répertoire de données MySQL : la table existe mais inaccessible
En réponse au problème déroutant d'une table apparaissant dans SHOW TABLES mais renvoyant une erreur d'existence lors de l'accès, une solution a été découverte.
Après le déplacement du répertoire de données MySQL, une base de données spécifique a présenté ceci anomalie. Malgré une connexion et une liste réussies des tables dans la base de données à l'aide de SHOW TABLES, les tentatives de récupération des données ont entraîné le message d'erreur "La table 'database.TABLE_ONE' n'existe pas."
La spéculation initiale attribuait le comportement à SHOW TABLES vérifiant uniquement l'existence du fichier sans valider l'intégrité du fichier. Cependant, une cause différente a été identifiée.
Lors de la copie d'un répertoire de base de données directement à l'aide de la commande "cp -r /path/to/my/database /var/lib/mysql/new_database", ce problème se pose. Si la base de données utilise des tables InnoDB, cette erreur spécifique se produit.
La solution consiste à s'assurer que les fichiers ib* (par exemple, ibdata1, ib_logfile0, ib_logfile1) sont présents dans le répertoire racine du répertoire de données MySQL. Après avoir copié ces fichiers cruciaux, le problème d'inaccessibilité est résolu et l'accès aux tables est restauré.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!