< Nachtgedacht (12) | Serendipity 2.0 RC1 >

Debian Wheezy Updateprobleme mit Mysql

Das tolle an Debian ist ja das problemlose Update des System via apt-get. Bisher hatte ich, besonders innerhalb eines Debian Releases noch nie Probleme beim Update von allen möglichen Paketen. Bis gestern.

Auf einem bestehenden Servern brachte apt-get ein Update des Paketes mysql-server-5.5 mit. Nach dem Download brachte die Konfiguration des Paketes und der damit verbundene Neustart des Sytems  einen Fehler und der Mysql-Dienst startete nicht mehr.

Die paketspezifischen Logdateien waren alle leer, allerdings gab es in /var/log/syslog einige aufschlussreiche Zeilen.

Nov 25 22:07:13 debian mysqld_safe[12959]: #007/usr/sbin/mysqld: File './mysql-bin.000097' not found (Errcode: 13)
Nov 25 22:07:13 debian mysqld_safe[12959]: 141125 22:07:13 [ERROR] Failed to open log (file './mysql-bin.000097', errno 13)
Nov 25 22:07:13 debian mysqld_safe[12959]: 141125 22:07:13 [ERROR] Could not open log file
Nov 25 22:07:13 debian mysqld_safe[12959]: 141125 22:07:13 [ERROR] Can't init tc log
Nov 25 22:07:13 debian mysqld_safe[12959]: 141125 22:07:13 [ERROR] Aborting

Die binären Logdateien von mysql liegen standardmäßig in /var/lib/mysql. Dort gab es zwei neue Logdateien, darunter auch die im Logfile genannte mysql-bin.000097. Allerdings gerhörten diese Dateien dem Benutzer root und waren somit vom Benutzer mysql, unter dem der Dienst läuft, nicht lesbar. Nachdem ich den Besitzer der Datei auf mysql geändert hatte, konnte ich den Dienst manuell mit "service mysql start" wieder starten. So weit so gut.

Allerdings gab es immer noch die unkonfigurierten Pakete mysql-server-5.5 und mysql-server. Apt-get versucht bei jedem Update nun, diese Pakete erneut zu konfigurieren, was dann wieder zu dem oben beschriebenen Problem führt. Das ist natürlich kein Dauerzustand.

Nach etwas googlen stellte ich fest, dass dieses Problem in verschiedenen Ausprägungen auftritt. Für meinen Fehler hat folgende Vorgehensweise zum Erfolg geführt:

  • Mysql muss gestoppt sein.
  • In /var/lib/mysql alle Dateien mit "chown mysql.mysql /var/lib/mysql/*" dem Benutzer mysql zuordnen.
  • Im Startscript /etc/init.d/mysql nach der case Zeile "'start')" die Zeile "exit 0" einfügen. Das beendet das Startscript ohne Fehlermeldung, allerdings auch ohne irgendetwas zu starten. ;-)
  • Danach ein "apt-get upgrade" durchführen. Die Konfiguration der Pakete wird jetzt durchgeführt. Dadurch, dass mysql nicht gestartet wird, wird auch der Fehler nicht erzeugt und die Pakete werden als sauber konfiguriert markiert.
  • In /etc/init.d/mysql die zuvor eingefügte Zeile "exit 0" wieder löschen.
  • Mysql mit "service mysql start" starten.

Jetzt sollte alles wieder sauber laufen. Ich hoffe, dass dieser Fehler beim nächsten Update von mysql nicht mehr auftritt.

Habt ihr so etwas auch schon mal auf einem Debian System erlebt? Eventuell hilft dieser Artikel ja jemandem, der ein ähnliches Problem mit einem Mysql-Update hat.

Trackbacks

Trackback-URL für diesen Eintrag

Dieser Link ist nicht aktiv. Er enthält die Trackback-URI zu diesem Eintrag. Sie können diese URI benutzen, um Ping- und Trackbacks von Ihrem eigenen Blog zu diesem Eintrag zu schicken. Um den Link zu kopieren, klicken Sie ihn mit der rechten Maustaste an und wählen "Verknüpfung kopieren" im Internet Explorer oder "Linkadresse kopieren" in Mozilla/Firefox.

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Noch keine Kommentare

Kommentar schreiben

Gravatar, Twitter, Pavatar, MyBlogLog, Favatar Autoren-Bilder werden unterstützt.
Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Wenn Du Deinen Twitter Namen eingibst wird Deine Timeline in Deinem Kommentar verlinkt.
Bewirb einen Deiner letzten Artikel
Dieses Blog erlaubt Dir mit Deinem Kommentar einen Deiner letzten Artikel zu bewerben. Bitte gib Deine Blog URL als Homepage ein, dann wird eine Auswahl erscheinen, in der Du einen Artikel auswählen kannst. (Javascript erforderlich)
(Bedingung: 1 Kommentare geschrieben)
tweetbackcheck