Installiert ist MariaDB Version 10.1.41 auf Debian. Nach einem Update konnte MariaDB nicht mehr gestartet werden:
# systemctl status mariadb.service
● mariadb.service - MariaDB 10.1.41 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2019-10-08 22:31:44 CEST; 11min ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Process: 21873 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=1/FAILURE)
Process: 21804 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ] && syst
Process: 21798 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Process: 21797 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
Main PID: 21873 (code=exited, status=1/FAILURE)
Status: "MariaDB server is down"
CPU: 655ms
Okt 08 22:31:40 webserver systemd[1]: Starting MariaDB 10.1.41 database server...
Okt 08 22:31:41 webserver mysqld[21873]: 2019-10-08 22:31:41 139969245212032 [Note] /usr/sbin/mysqld (mysqld 10.1.41-MariaDB-0+deb9u1) starting
Okt 08 22:31:44 webserver systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
Okt 08 22:31:44 webserver systemd[1]: Failed to start MariaDB 10.1.41 database server.
Okt 08 22:31:44 webserver systemd[1]: mariadb.service: Unit entered failed state.
Okt 08 22:31:44 webserver systemd[1]: mariadb.service: Failed with result 'exit-code'.
Nochmal MariaDB / MySQL starten:
# /etc/init.d/mysql start
Journalctl
Da es ja nicht startet kann man den Fehler im Journal nun direkt sehen:
# journalctl -xe
Okt 08 22:49:33 webserver systemd[1]: Starting MariaDB 10.1.41 database server...
-- Subject: Unit mariadb.service has begun start-up
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit mariadb.service has begun starting up.
Okt 08 22:49:33 webserver mysqld[27258]: 2019-10-08 22:49:33 140668169600384 [Note] /usr/sbin/mysqld (mysqld 10.1.41-MariaDB-0+deb9u1) starting
Okt 08 22:49:36 webserver systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
Okt 08 22:49:36 webserver systemd[1]: Failed to start MariaDB 10.1.41 database server.
-- Subject: Unit mariadb.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit mariadb.service has failed.
--
-- The result is failed.
Okt 08 22:49:36 webserver systemd[1]: mariadb.service: Unit entered failed state.
Okt 08 22:49:36 webserver systemd[1]: mariadb.service: Failed with result 'exit-code'.
Logfile
Wo liegt das error.log:
# mysqld --help --verbose | grep 'log-error' | tail -1
2019-10-08 22:46:13 140688313216384 [Note] Using unique option prefix 'myisam-recover' is error-prone and can break in the future. Please use the full name 'myisam-recover-options' instead.
2019-10-08 22:46:13 140688313216384 [Note] Plugin 'FEEDBACK' is disabled.
log-error /var/log/mysql/error.log
Was zeigt das log:
# cat /var/log/mysql/error.log
2019-10-08 22:49:33 140668169600384 [Note] Using unique option prefix 'myisam-recover' is error-prone and can break in the future. Please use the full name 'myisam-recover-options' instead.
2019-10-08 22:49:33 140668169600384 [Note] InnoDB: innodb_empty_free_list_algorithm has been changed to legacy because of small buffer pool size. In order to use backoff, increase buffer pool at least up to 20MB.
2019-10-08 22:49:33 140668169600384 [Note] InnoDB: Using mutexes to ref count buffer pool pages
2019-10-08 22:49:33 140668169600384 [Note] InnoDB: The InnoDB memory heap is disabled
2019-10-08 22:49:33 140668169600384 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2019-10-08 22:49:33 140668169600384 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
2019-10-08 22:49:33 140668169600384 [Note] InnoDB: Compressed tables use zlib 1.2.8
2019-10-08 22:49:33 140668169600384 [Note] InnoDB: Using Linux native AIO
2019-10-08 22:49:33 140668169600384 [Note] InnoDB: Using generic crc32 instructions
2019-10-08 22:49:33 140668169600384 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2019-10-08 22:49:33 140668169600384 [Note] InnoDB: Completed initialization of buffer pool
2019-10-08 22:49:33 140668169600384 [Note] InnoDB: Highest supported file format is Barracuda.
2019-10-08 22:49:34 140668169600384 [Note] InnoDB: 128 rollback segment(s) are active.
2019-10-08 22:49:34 140668169600384 [Note] InnoDB: Waiting for purge to start
2019-10-08 22:49:34 140668169600384 [Note] InnoDB: Percona XtraDB (http://www.percona.com) 5.6.44-86.0 started; log sequence number 133637874
2019-10-08 22:49:34 140668169600384 [Note] Plugin 'FEEDBACK' is disabled.
2019-10-08 22:49:34 140668169600384 [Note] Recovering after a crash using tc.log
2019-10-08 22:49:34 140668169600384 [ERROR] Can't init tc log
2019-10-08 22:49:34 140668169600384 [ERROR] Aborting
Ursache
Nachdem ich mehrere Stunden nach der Ursache und einer möglichen Lösung gesucht hatte, kam ich auf die Meldung:
Recovering after a crash using tc.log
2019-10-08 22:49:34 140668169600384 [ERROR] Can't init tc log
2019-10-08 22:49:34 140668169600384 [ERROR] Aborting
Lösung
Die Lösung des gesamten Problems war dann:
# find / -name tc.log
/var/lib/mysql/tc.log
root@webserver:~# rm /var/lib/mysql/tc.log
root@webserver:~# systemctl start mariadb
root@webserver:~# systemctl status mariadb
● mariadb.service - MariaDB 10.1.41 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2019-10-08 23:51:57 CEST; 5s ago
Docs: man:mysqld(8)
Danach kann das Update von MariaDB installiert werden:
# apt update && apt upgrade
Thats it – have fun.
Interessiert in verschiedenste IT Themen, schreibe ich in diesem Blog über Software, Hardware, Smart Home, Games und vieles mehr. Ich berichte z.B. über die Installation und Konfiguration von Software als auch von Problemen mit dieser. News sind ebenso spannend, sodass ich auch über Updates, Releases und Neuigkeiten aus der IT berichte. Letztendlich nutze ich Taste-of-IT als eigene Dokumentation und Anlaufstelle bei wiederkehrenden Themen. Ich hoffe ich kann dich ebenso informieren und bei Problemen eine schnelle Lösung anbieten. Wer meinen Aufwand unterstützen möchte, kann gerne eine Tasse oder Pod Kaffe per PayPal spenden – vielen Dank.
Nach 2 Std Suche hatte ich dann mal Google bemüht, ab dort nur noch 10 min.
Danke nochmal für kostbare Zeit meines Lebens
Hi Matthias, schön das ich helfen konnten.
Top. Vielen Dank!!!!
Hast mir den Tag gerettet.
Hi Spicer,
super das ich helfen konnte.
…absolute Sahne, Danke!!! … hat mir mein Wochenende gerettet der Tipp…<3
Hi Hubi,
freut mich dass ich helfen konnte.
Das hat mir gerade den Arsch gerettet. Ich schlage ein tl,dr; am Anfang des Artikels vor:
rm /var/lib/mysql/tc.log
systemctl start mariadb
systemctl status mariadb
🙂
DANKE!
Hi Demonicus,
super das ich helfen konnte. Die 3 Codezeilen sind unten bei der Lösung im Dokument. Ich habe es extra so aufgebaut, dass man meine Schritte verfolgen kann.
Nicht umsonst ist diese Seite das erste Suchergebnis bei Google, wenn man nach „mariadb.service: Main process exited, code=exited, status=1/FAILURE“ sucht, denn nach wenigen Minuten läuft wieder alles. Tausend Dank für das Teilen dieser Lösung!
Hi Michael,
super das ich helfen konnte.
Auch im Jahre 2020 immer noch ein Problem…
Bei mir hieß es aber:
[ERROR] Bad magic header in tc log statt wie bei dir:
[ERROR] Can’t init tc log
Aber es klappte trotzdem!! DANKE!
Hi Daniel,
schön das ich helfen konnte.
Ich küsse dich!
Einfach das log zu löschen hat mich wieder in Plesk reingelassen.
Manchmal kann es so einfach sein..
Hi Nico,
gut das ich helfen konnte. Äh Kuss?! Gut das es digital ist 🙂
Das war eine gute Idee!!!
Hi Rolf,
gerne doch 🙂
Hatte exakt dieses Problem. Dieser Artikel hat das Troubleshooting auf Minuten reduziert. Vielen Dank!
Hi NC,
super das ich schnell helfen konnte. Ich selber hatte dafür ein paar Stunden gebraucht, war aber am Ende glücklich das kein tieferer Eingriff notwendig war.