Hallo zusammen,
seit Wochen habe ich das offensichtlich vielfach bekannte Problem, dass ich MySQL nicht mehr öffnen kann, weil laut Fehlerhinweis MySQL unerwartet beendet wurde. Was mehrere Jahre problemlos lief, geht jetzt nicht mehr. Und was das Schlimmste daran ist, ich kann die Ursache des Problems nicht finden.
Ich habe inzwischen das Internet kreuz und quer durchgegoogelt und die angebotenen Lösungsmöglichkeiten ausprobiert – mit keinem oder nur begrenztem Erfolg. Ein geblockter Port scheidet aus. Dies habe ich mehrfach überprüft.
Die Windows-Ereignisanzeige listet folgende Fehler auf:
mysqld.exe: Table '.\mysql\db' is marked as crashed and last (automatic?) repair failed
Fatal error: Can't open and lock privilege tables: Table '.\mysql\db' is marked as crashed and last (automatic?) repair failed
mysqld.exe: Error writing file …\Xampp\mysql\data\aria_log_control' (Errcode: 9 "Bad file descriptor")
Meine bisherigen Versuche (entsprechend den Vorschlägen aus unterschiedlichen Netzquellen):
Meine Fragen:
Viele Grüße
hawaiian
PS:
Eine "Alternativfrage" hätte ich auch noch. Seit einer der letzten Neueinspielungen taucht bei einer Datenbankabfrage folgender Hinweis auf:
Deprecated: file_exists(): Passing null to parameter #1 ($filename) of type string is deprecated …
Der maßgebliche php-Code lautet:
Bislang bereitete der Code keine Schwierigkeiten. Nun aber scheint er überholt zu sein. Auch insoweit bin ich noch nicht fündig geworden, gebe aber zu, infolge des anderen Problems noch nicht intensiv geforscht zu haben.
seit Wochen habe ich das offensichtlich vielfach bekannte Problem, dass ich MySQL nicht mehr öffnen kann, weil laut Fehlerhinweis MySQL unerwartet beendet wurde. Was mehrere Jahre problemlos lief, geht jetzt nicht mehr. Und was das Schlimmste daran ist, ich kann die Ursache des Problems nicht finden.
Ich habe inzwischen das Internet kreuz und quer durchgegoogelt und die angebotenen Lösungsmöglichkeiten ausprobiert – mit keinem oder nur begrenztem Erfolg. Ein geblockter Port scheidet aus. Dies habe ich mehrfach überprüft.
Die Windows-Ereignisanzeige listet folgende Fehler auf:
mysqld.exe: Table '.\mysql\db' is marked as crashed and last (automatic?) repair failed
Fatal error: Can't open and lock privilege tables: Table '.\mysql\db' is marked as crashed and last (automatic?) repair failed
mysqld.exe: Error writing file …\Xampp\mysql\data\aria_log_control' (Errcode: 9 "Bad file descriptor")
Meine bisherigen Versuche (entsprechend den Vorschlägen aus unterschiedlichen Netzquellen):
- Start mit Administratorrechten – hat einmal geklappt, am nächsten Tag nach erneutem Auftauchen des Problems nicht mehr.
- In der My.ini Konfigurationsdatei von Mysql im Abschnitt [mysqld] folgendes hinzugefügt: skip-grant-tables – hat sofort geklappt, ich konnte MySQL starten. Am nächsten Tag war’s mit der Freude wieder vorbei. Ich hatte zuvor über Operationen alle Tabellen überprüft und es wurden alle als ok befunden.
- Umbenennen des Ordners data in data_alt und des Ordners backup in data (beides im Ordner mysql). Der Zugang war danach wieder möglich. In phpMyAdmin waren aber die Datenbanken nicht mehr da.
- Vorgehen wie hier hier erläutert, d. h. ich habe die Backup-Dateien in den data-Ordner kopiert. Der Zugang war danach wieder möglich. In phpMyAdmin waren aber die Datenbanken, und jetzt wird es für mich ganz verwirrend, nur noch zum Teil da. Genauer gesagt, eine Datenbank mit zwei Tabellen war da, brav befüllt mit rund 9.000 Datensätzen. Das ist zugleich diejenige, in der ich zuletzt nichts ergänzt oder geändert hatte. Zwei weitere Datenbanken mit Tabellen wurden zwar angezeigt. Klickt man aber auf die Tabellen (in denen ich noch tags zuvor Änderungen vorgenommen hatte), erscheint der Hinweis, dass sie nicht existieren. Will ich die Datenbank löschen, erscheint der Hinweis, dass dies nicht ginge, weil sie nicht leer sei (Fehler: 41 "Directory not empty"). Will ich sie neu anlegen, geht dies nicht, weil sie schon vorhanden sein soll. Aus diesem Kreislauf komme ich nicht heraus.
Meine Fragen:
- Hat jemand eine Idee, was diesen Fehler auslösen könnte?
- Die unter Punkt 4 dargestellte Lösung geht zwar sehr schnell. Wenn aber die Tabellen fehlen, nützt mir das auch nichts. Ich könnte mir aber vorstellen, dass ich insoweit vielleicht einen dummen Fehler begehe. Welcher könnte das sein?
- Gibt es noch andere von mir nicht geschilderte Lösungsmöglichkeiten?
- Kann es sein, dass das Problem mit Windows 11 zusammenhängt? Unter Windows 10 jedenfalls ist das nie passiert. Hat da vielleicht jemand etwas gehört oder gelesen?
- Mit dem Verweis in der Windows-Ereignisanzeige auf die gecrashte Tabelle '.\mysql\db' weiß ich auch nichts anzufangen. Die wurde, meine ich, im Rahmen der Installation erstellt. Oder irre ich mich da?
Viele Grüße
hawaiian
PS:
Eine "Alternativfrage" hätte ich auch noch. Seit einer der letzten Neueinspielungen taucht bei einer Datenbankabfrage folgender Hinweis auf:
Deprecated: file_exists(): Passing null to parameter #1 ($filename) of type string is deprecated …
Der maßgebliche php-Code lautet:
PHP:
if (file_exists($row->wm)) echo '<img src="'.$row->wm.'" width="25" height="25">';
Bislang bereitete der Code keine Schwierigkeiten. Nun aber scheint er überholt zu sein. Auch insoweit bin ich noch nicht fündig geworden, gebe aber zu, infolge des anderen Problems noch nicht intensiv geforscht zu haben.