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.

Nachtgedacht (12)

Then I'm dying in the bottom of a pit in the blazing sun,
torn and twisted at the foot of a burning bike,
and I think somebody somewhere must be tolling a bell.
And the last thing I see is my heart, still beating,
breaking out of my body and flying away
like a bat out of hell.

Jim Steinman

S9y InfoCamp Podcast zum Thema SEO

Matthias und Robert vom S9y InfoCamp haben nach langer Pause mal wieder eine neue Podcast Folge herausgegeben. Zusammen mit dem Gast Mark Binder unterhalten sie sich über das Thema SEO.

Das Thema ist nicht nur für Serendipity Nutzer interessant, denn die drei beleuchten das Thema eher systemübergreifend. Es gibt einige wertvolle Grundlagen und Tipps, die sich auch für Anfänger praktisch umsetzen lassen. Und gerade wenn man - wie ich hier auf diesem kleinen Blog - nicht über hunderte Stammleser verfügt, freut man sich natürlich, wenn der ein oder andere Besucher über Google auf einen Artikel im Blog stösst. Also hört einfach mal rein, es lohnt sich.

tweetbackcheck