Bei mir war /var/lib/mysql wegen einer vollen Partition nicht mehr beschreibbar. Das hat die bei mir installierte MySQL in Mitleidenschaft gezogen. Soweit ich sehe sind alle Datenbanken und alle Tabellen zumindest physikalisch noch auf der Platte vorhanden. Rufe ich phpmyadmin auf, dann wir mir zum Beispiel für die Datenbank Mediawiki folgendes angezeigt:
Mediawiki (48 )
Wenn ich die Datenbank aufrufe zeigt mir phpmyadmin allerdings nur 4 Tabellen an. Die Tabellen selber sind im Verzeichnis /var/lib/mysql/mediawiki vorhanden. Ich zähle 48 *.frm Dateien und noch einige andere.
Wie kann ich die verlorenen Tabellen zurückholen?
P.S.: Ich weiss nicht ob es mir einer erklären kann, aber warum sind die Tabellen zwar auf der Platte vorhanden, aber für die MySQL quasi unsichtbar?
MySQL ist durch vollgelaufene Platte beschädigt
-
- Beiträge: 320
- Registriert: 01.01.2007 13:19:34
du meinst sie sind für phpmyadmin unsichtbar....
geh auf die mysql console und schau dir das ganze dort an!
wenn ich mich nicht allzusehr irre... mein mysql ist schon paar jahre alt
geh auf die mysql console und schau dir das ganze dort an!
Code: Alles auswählen
list tables;
log dich als root per mysql ein ("mysql").
mit "show databases;" zeigst du dir die DBs an, die mysql kennt.
mit "use <db_name>;" kannst du eine DB anwählen.
mit "show tables;" zeigst du dir die verfügbaren Tabellen an.
mit "repair table <tabellenname>;" kannst du einzelne Tabellen versuchen zu reparieren.
SICHERE vorher unbedingt die db-files in /var/lib/mysql/* weg, falls was schiefgeht!
Schau auch mal ins mysql-log, da stehen vielleicht wertvolle Hinweise.
mit "show databases;" zeigst du dir die DBs an, die mysql kennt.
mit "use <db_name>;" kannst du eine DB anwählen.
mit "show tables;" zeigst du dir die verfügbaren Tabellen an.
mit "repair table <tabellenname>;" kannst du einzelne Tabellen versuchen zu reparieren.
SICHERE vorher unbedingt die db-files in /var/lib/mysql/* weg, falls was schiefgeht!
Schau auch mal ins mysql-log, da stehen vielleicht wertvolle Hinweise.
Perl macht Spass.
Re: MySQL ist durch vollgelaufene Platte beschädigt
...und sollten die DB's doch größer beschädigt sein, kann ich dir den Befehl mysqlbinlog ans Herz legen.bombaclaude hat geschrieben:Bei mir war /var/lib/mysql wegen einer vollen Partition nicht mehr beschreibbar. Das hat die bei mir installierte MySQL in Mitleidenschaft gezogen. Soweit ich sehe sind alle Datenbanken und alle Tabellen zumindest physikalisch noch auf der Platte vorhanden. Rufe ich phpmyadmin auf, dann wir mir zum Beispiel für die Datenbank Mediawiki folgendes angezeigt:
Wenn ich die Datenbank aufrufe zeigt mir phpmyadmin allerdings nur 4 Tabellen an. Die Tabellen selber sind im Verzeichnis /var/lib/mysql/mediawiki vorhanden. Ich zähle 48 *.frm Dateien und noch einige andere.
Wie kann ich die verlorenen Tabellen zurückholen?
Also z.B. das (veraltete) Backup auf ner Spiel-DB einspielen und mit
Code: Alles auswählen
mysqlbinlog /var/log/mysql/mysql-bin.000xxx > ~`/mysql-bin-000xxx..txt
Code: Alles auswählen
mysql -u ... <~/mysql-bin-000xxx.txt
Code: Alles auswählen
mysqlbinlog --stop-date=”2008-03-28 15:30:00" /var/log/mysql/bin.000xxx mysql -u root -ppassword ...
Code: Alles auswählen
expire_logs_days = 10
max_binlog_size = 100M
Weil MySQL seine Informationen ja auch aus Verwaltungstabellen bezieht. Diese sind evt. nicht mehr konsistent. Aber da würde ich mich ebenfalls, wie die Vorposter, nicht auf PHPMyadmin alleine verlassen...bombaclaude hat geschrieben: P.S.: Ich weiss nicht ob es mir einer erklären kann, aber warum sind die Tabellen zwar auf der Platte vorhanden, aber für die MySQL quasi unsichtbar?
Grüße, Markus
-
- Beiträge: 320
- Registriert: 01.01.2007 13:19:34
Danke für die Antworten. Werde das heute Abend in aller Ruhe angehen. Obwohl ich mittlerweile davon ausgehe das die Inhalte der MySQL gelöscht sind. Es gibt wie gesagt jede Menge FRM Dateien, aber kaum welche von den anderen beiden Dateitypen, in denen die Inhalte gespeichert sind.
Was mich aber interessiert ist, warum verschwinden diese Tabellen? Zum Zeitpunkt des Überlaufs habe ich am Layout eines Wordpress themes gearbeitet und Wordpress dabei zu Kontrollzwecken aufgerufen. Ich habe also nur Daten aus der MySQL abgerufen, aber keine reingestellt. Die styles Datei liegt ja bei Wordpress nicht in der MySQL sondern als Datei auf der Platte. Die betreffende Mediawiki database hatte ich nicht in Arbeit. Trotzdem ist nur die Mediawiki database kaputt. Das irritiert mich etwas!
Was mich aber interessiert ist, warum verschwinden diese Tabellen? Zum Zeitpunkt des Überlaufs habe ich am Layout eines Wordpress themes gearbeitet und Wordpress dabei zu Kontrollzwecken aufgerufen. Ich habe also nur Daten aus der MySQL abgerufen, aber keine reingestellt. Die styles Datei liegt ja bei Wordpress nicht in der MySQL sondern als Datei auf der Platte. Die betreffende Mediawiki database hatte ich nicht in Arbeit. Trotzdem ist nur die Mediawiki database kaputt. Das irritiert mich etwas!
das kann dir hier ohne Glaskugel vermutlich keiner konkret beantworten. Aber dafür sind die logs ja da.bombaclaude hat geschrieben:Was mich aber interessiert ist, warum verschwinden diese Tabellen? Zum Zeitpunkt des Überlaufs habe ich am Layout eines Wordpress themes gearbeitet und Wordpress dabei zu Kontrollzwecken aufgerufen. Ich habe also nur Daten aus der MySQL abgerufen, aber keine reingestellt. Die styles Datei liegt ja bei Wordpress nicht in der MySQL sondern als Datei auf der Platte. Die betreffende Mediawiki database hatte ich nicht in Arbeit. Trotzdem ist nur die Mediawiki database kaputt. Das irritiert mich etwas!

Grüße, Markus