Wie kaputte Tabellen reparieren ??

  • Thread starter Thread starter blob
  • Start date Start date
B

blob

Guest
Eine meiner Tabellen des Forums öffnet nicht mehr, Reparatur mit #myisamchk -r war zwar erfolgreich, keine Fehlermeldung mit demselben mehr, aber mit mysql weiterhin Fehlermeldung und Reparatur erfolglos. Was tun ??

myisamchk: warning: 38 clients are using or haven't closed the table properly
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
- check data record references index: 2
- check data record references index: 3
- check data record references index: 4
- check record links
MyISAM-table 'mnet_attachments_desc' is usable but should be fixed
root@werner:/var/lib/mysql/mysql#

root@werner:/var/lib/mysql/mysql# mysql mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 21
Server version: 6.0.0-alpha MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> REPAIR TABLE mnet_attachments_desc EXTENDED
-> ;
+-----------------------------+--------+----------+--------------------------------------------------- ---------------------+
| Table | Op | Msg_type | Msg_text |
+-----------------------------+--------+----------+--------------------------------------------------- ---------------------+
| mysql.mnet_attachments_desc | repair | error | Incorrect key file for table 'mnet_attachments_des c'; try to repair it |
+-----------------------------+--------+----------+--------------------------------------------------- ---------------------+
1 row in set, 1 warning (0.00 sec)

mysql> grrrr ..
-> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'grrrr ..' at line 1
mysql> quit
Bye
root@werner:/var/lib/mysql/mysql
 
Last edited by a moderator:
Das hat ergeben, daß alle Tabellen upgedatet wurden ... außer dieser kaputten :(

Die Tafel ist nur klein. Gibt es irgendeinen 'Editor' für solche Datenbanken, womit ich sie einlesen, ansehen, manuell korrigieren kann ?? Diese Tafel ist die Liste der Anlagen (Fotos zu posts), deren Unlesbarkeit dazu führt, daß die meisten posts im Forum nicht geöffnet werden können (phpBB2 Fehler 1034)
 
schau mal in der Manpage nach, ob dir evtl. eine der Optionen noch weiter helfen könnte.
An sonsten ein mysqldump der Tabelle mit DROP TABLE, und die Tabelle neu anlegen könnte auch helfen. Allerdings kann das natürlich zu Datenverlust führen, wenn nicht alle Daten gedumped wurden.
 
myisamchk: warning: 38 clients are using or haven't closed the table properly
ARG! Immer MySQL für sowas vollständig beenden.

REPAIR TABLE mnet_attachments_desc EXTENDED
Und damit macht man meist mehr kaputt als ganz.

Nachdem MySQL wirklich beendet ist mehrmals aufrufen:
Code:
myisamchk --fast --force --update-state /var/lib/mysql/DATABASE/TABLE.MYI
Statt --fast kann man auch mal --opt probieren.

huschi.
 
Deshalb bin ich jetzt auch mehr der Meinung, daß hauptsächlich ein Problem von MySQL 6 vorliegt, und habe das als Fehler gemeldet, sodaß es überprüft und ggf. verbesert werden kann.

In jedem Fall besteht die Inkonsistenz, daß mysql und myisamchk derselben Version einerseits einen Fehler bemängeln und nicht reparieren können, andererseits das Gegenteil.

Es ist nur 1 von mehreren hundert Tafeln in der Datenbank, der Rest funktioniert einwandtfrei. Es ist möglich daß sie ein kleines Problem hatte, das sollte aber reparierbar sein. Andererseits sollte ein transparenteres Hilfsmittel zur Bearbeitung von Tabellen gemacht werden. Mit dem #mcedit kann ich mir die Tabelle angucken, ich möchte aber nicht darin herumpfuschen da da wohl noch eine unsichtbare Struktur als MySQL-Tafel drin ist -- aber ein entsprechendes Hilfsmittel sollte es geben oder schnellstens gemacht werden.
 
Darf man fragen, aus welchem Grund Du keine Stable 5er für das phpbb einsetzen willst? Ich meine gerade ein Forum ist eine Plattform die hochverfügbar sein sollte, ich würde da nie auf den gedanken kommen, irgendwas einzusetzen was nicht definitv als stable markiert ist.
Das phpbb ist immerhin keine Anwendung die eine 6er mysql fordert? :confused:
 
Ich habe gerade wieder MySQL 5.1 zurückinstalliert und der Fehler tritt nicht auf. Also wohl eine Inkompatiblität der Versionen von MySQL, oder direkt ein Fehler in Version 6.
 
Verstehe ich das richtig?
Du hast Tabellen in MySQL 5 angelegt und dann MySQL 6 (selbst kompiliert) auf die selben DB-Dateien angesetzt?
In dem Fall ist es verständlich. Niemand gibt eine Garantie das das Binärformat unter den Versionen kompatibel ist. Der Übergang der Daten sollte immer mit einem SQL-Dump erfolgen.

huschi.
 
Ich habe nochmal unter MySQL 5 alle Tabellen geprüft und upgedated, wobei insbesondere die fragliche OK war, ferner alles gedumpt. Anschließend wieder MySQL 6 installiert und es erneut versucht, sowohl direkt weiterverwendet als den Dump zurückgelesen. In beiden Fällen hat es nichts genützt und ist der Fehler immer wieder aufgetreten.

Von mehreren hundert Tafeln gibt nur eine dieses Problem. Es wäre daher endlich an der Zeit, daß die MySQL-Entwickler dafür sorgen,
a) daß unterschiedliche Versionen kompatibel sind, und
b) daß kleinere Fehler in Tabellen behebbar sind
 
Kompatibel INSOFERN daß stets alte Daten weiterhin gelesen - notfalls auf ein neues Format umgewandelt - werden ?? Absolut kein Problem für die Weiterentwicklung, das schränkt doch diese gar nicht ein !! Daß Daten plötzlich nicht mehr gelesen werden können, ist ja eine der Kritiken der nicht-open Software.
 
Für jemanden der angeblich ständig alle Pakete selber kompiliert ist das Verlangen nach einem fertigen Automatismus bei Version-Sprüngen ziemlich paradox.

Und der letzte Satz von Dir macht mal wieder gar keinen Sinn.

huschi.
 
Back
Top