2014-03-31 10 views
5

Situation: Ich habe eine MySQL-Datenbank mit 104 Tabellen, lokal auf XAMPP auf Windows 7 ausgeführt. Alle Tabellen haben InnoDB-Engine. XAMPP MySQL läuft als Windows-Dienst. Als Frontend habe ich PHP (CodeIgniter).Wie zu reparieren, oder löschen/erstellen Sie eine beschädigte Tabelle in MySQL?

Problem: Letzte Nacht wie üblich habe ich aufgehört, an dem Projekt zu arbeiten und die Fenster normal herunterzufahren. Heute Morgen habe ich den Fehler table MY_TALBE does not exists im Browser bekommen. show tables auf der Konsole zeigt den Tabellennamen, aber desc MY_TABLE und select * from MY_TABLE sagt unknown table. Ich versuchte create table MY_TABLE(...), aber ich hatte Fehler als table MY_TABLE already exists, also versuchte ich drop table MY_TABLE aber es sagte Unknown table MY_TABLE! Ich versuchte mysqlcheck.exe für die Reparatur und zu überprüfen, sie beide fehlgeschlagen, aber danach zeigt show tables nicht mehr den Tabellennamen. Ich muss erwähnen, dass ich keine mysql-Dateien geändert/verschoben/gelöscht/umbenannt habe. Auch kann ich nicht auf die Datenbank löschen:

mysql> drop database MY_DB; 
No connection. Trying to reconnect... 
Connection id: 1 
Current database: *** NONE *** 

Frage: Ist es möglich, sich zu erholen/Reparatur MY_TABLE, oder zumindest, wie sie fallen zu lassen und erstellen wieder (ohne die Datenbank zu löschen und neu crteating es wieder) ?

+0

Überprüfen Sie, ob Sie einen Backup-Ordner an Ihrem Standort mysql haben möglicherweise Auto-Backup – Divya

+0

Diese URL kann hilfreich sein: http://www.thegeekstuff.com/2011/12/mysqlcheck/ – ursitesion

+0

@ A5l-IE5 Es gibt ein Backup-Ordner, aber keine Dateien für meine Datenbank. – Musa

Antwort

1

Nach the same question auf dba.stackexchnage.com fragen, fand ich meine Lösung wie folgt: Tabelle

Die beschädigt ist nicht reparabel noch erstattungsfähig. Die einzige Möglichkeit besteht darin, die Datenbanken und die gesicherte Tabelle der Datenbank mit fehlerhafter Tabelle zu sichern und anschließend die Infrastruktur von MySQL von den Datenbankdateien zu säubern, dh die Dateien von der Festplatte zu löschen und dann neu zu starten, dh alle Datenbanken wiederherzustellen und Tabellen und auch die beschädigte Tabelle neu erstellen. Auch der verlinkte Artikel erwähnt, dass es möglich ist, einige Daten der beschädigten Tabelle wiederherzustellen.

Auch einige Tools wie Percona ist verfügbar, um beschädigte InnoDB-Tabellen wiederherzustellen, aber es ist nicht für Windows.

Verweisen Sie den obigen Link für alle Details.