Mysql
 sql >> Base de données >  >> RDS >> Mysql

Les tables que je crée et qui commencent par dotNetChat_ disparaissent après le redémarrage de MySQL

Je dirais que pour une raison quelconque, MySQL se voit refuser l'accès aux fichiers InnoDB, qu'il ne peut alors pas charger, et continue sans eux. Pouvez-vous vérifier que votre processus n'est pas exécuté deux fois et que l'utilisateur MySQL est exécuté sous un compte ayant accès au répertoire MySQL lib.

Je base mes conclusions sur cette erreur :

[ERROR] InnoDB: Failed to find tablespace for table "thepwf_prgminteractions"."dotnetchat_testtable" in the cache. Attempting to load the tablespace with space id 24.
2014-03-05 18:05:33 0x1f30  InnoDB: Operating system error number 32 in a file operation.
InnoDB: The error means that another program is using InnoDB's files.
InnoDB: This might be a backup or antivirus software or another instance
InnoDB: of MySQL. Please close it to get rid of this error.

Et l'erreur 32, basée sur http://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx signifie :

ERROR_SHARING_VIOLATION
32 (0x20)
The process cannot access the file because it is being used by another process.

Ce qui signifie, comme je l'ai dit, que les fichiers sont verrouillés par un autre processus. Et cela se produit lorsque vous redémarrez MySQL car lorsque vous les créez, MySQL les a ouverts et un autre processus ne peut pas les verrouiller. Dès que le service MySQL est arrêté (pour le redémarrage), un autre processus verrouille les fichiers et MySQL ne peut pas les ouvrir lorsqu'il redémarre.

Pour voir les fichiers verrouillés sur votre système et quel processus les maintient verrouillés, vous pouvez utiliser http://technet.microsoft.com/en-us/sysinternals/bb896655.aspx

Vous devrez exécuter l'invite CMD en tant qu'administrateur et taper quelque chose comme :

handle.exe thepwf_

Ce qui devrait montrer quel processus détient les fichiers verrouillés.

Faites-moi savoir ce que vous trouvez.