Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Von mir erstellte Tabellen, die mit dotNetChat_ beginnen, verschwinden nach dem Neustart von MySQL

Ich würde sagen, dass MySQL aus irgendeinem Grund der Zugriff auf InnoDB-Dateien verweigert wird, die es dann nicht laden kann, und ohne sie fortfährt. Können Sie überprüfen, dass Ihr Prozess nicht zweimal ausgeführt wird und dass der MySQL-Benutzer unter einem Konto ausgeführt wird, das Zugriff auf das MySQL-Bibliotheksverzeichnis hat.

Ich stütze meine Erkenntnisse auf diesen Fehler:

[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.

Und Fehler 32, basierend auf http://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx bedeutet:

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

Was bedeutet, wie gesagt, dass Dateien von einem anderen Prozess gesperrt werden. Und es passiert, wenn Sie MySQL neu starten, weil MySQL sie beim Erstellen geöffnet hat und ein anderer Prozess sie nicht sperren kann. Sobald der MySQL-Dienst gestoppt wird (für einen Neustart), sperrt ein anderer Prozess die Dateien und MySQL kann sie beim nächsten Start nicht mehr öffnen.

Um gesperrte Dateien auf Ihrem System anzuzeigen und zu erfahren, welcher Prozess sie gesperrt hält, können Sie http://technet.microsoft.com/en-us/sysinternals/bb896655.aspx

Sie müssten CMD Prompt als Administrator ausführen und so etwas wie:

eingeben
handle.exe thepwf_

Was zeigen sollte, welcher Prozess die Dateien gesperrt hält.

Lassen Sie mich wissen, was Sie finden.