Anhang A: Probleme und h¨aufige Fehler 637
2. Lassen Sie Ihre Test-Skripts laufen.
3. Geben Sie die Ablaufverfolgung (Backtrace) und die lokalen Variablen der unter-
sten 3 Ebenen aus. In gdb k¨onnen Sie das mit folgenden Befehle tun, wenn mysqld
innerhalb von gdb a/jointfilesconvert/293675/bgest¨urzt ist:
backtrace
info local
up
info local
up
info local
Mit gdb k¨onnen Sie auch untersuchen, welchen Thread es gibt (mit info thread
und zu einem speziellen Thread umschalten (mit thread #, wobei # die Thread-
Kennung ist).
• Versuchen Sie, Ihre Applikation mit einem Perl-Skript zu simulieren, um MySQL zu
zwingen, abzust¨urzen oder fehlerhaftes Verhalten an den Tag zu legen.
• Senden Sie einen normalen Bug-Bericht. Siehe Abschnitt 2.6.2.3 [Bug reports], Seite 30.
Geben Sie mehr Details an als ¨ublich. Weil MySQL bei vielen Leuten funktioniert,
kann es sein, dass der Absturz das Ergebnis von etwas ist, das nur auf Ihrem Com-
puter existiert (b eispielsweise ein Fehler, der aus Ihren besonderen Systembibliotheken
resultiert).
• Wenn Sie ein Problem mit Tabellen haben, die Zeilen dynamischer L¨ange enthalten,
und Sie nicht BLOB/TEXT-Spalten benutzen (sondern nur VARCHAR-Spalten), k¨onnen Sie
versuchen, alle VARCHAR- in CHAR-Spalten umzuwandeln, indem Sie ALTER TABLE ver-
wenden. Das erzwingt, dass MySQL Zeilen fester L¨ange verwendet. Zeilen fester L¨ange
ben¨otigen etwas mehr Platz, sind aber fehlertoleranter gegen¨uber Besch¨adigungen!
Der aktuelle Code mit dynamischen Zeilen ist bei MySQL AB seit mindestens drei
Jahren ohne jedes Problem in Benutzung, aber naturgem¨aß sind Zeilen dynamischer
L¨ange fehleranf¨alliger. Daher kann es eine gute Idee sein, das oben Gesagte auszupro-
bieren.
A.4.2 Wie ein vergessenes Passwort zur¨uckgesetzt wird
Wenn Sie das root-Benutzerpasswort f¨ur MySQL vergessen haben, k¨onnen Sie es mit fol-
gender Prozedur wiederherstellen:
1. Fahren Sie den mysqld-Server durch Senden von kill (nicht kill -9) an den mysqld-
Server herunter. Die Prozess-Kennung (PID) wird in einer .pid-Datei gespeichert, die
sich normalerweise im MySQL-Datenbank-Verzeichnis befindet:
kill ‘cat /mysql-daten-verzeichnis/hostname.pid‘
Hierf¨ur m¨ussen Sie entweder der Unix-root-Benutzer sein oder derselbe Benutzer, unter
dem der Server l¨auft.
2. Starten Sie mysqld mit der --skip-grant-tables-Option neu.
3. Verbinden Sie sich mit dem mysqld-Server mit mysql -h hostname mysql und ¨andern
Sie das Passwort mit einem GRANT-Befehl. Siehe Abschnitt 5.3.1 [GRANT], Seite 203. Sie
k¨onnen dasselbe auch mit mysqladmin -h hostname -u benutzer password ’neues_
passwort’ machen.
Kommentare zu diesen Handbüchern