MariaDB startet nicht

Aus Glaskugel
Zur Navigation springen Zur Suche springen

Quelle = Ticket#2020032210000978

Anbei ein Eintrag für die KB bzw. Wiki. Was tun, wenn MariaDB nicht starten will.


   Log checken
   Sofern eine Inkonsistenz vorliegt, nach Anleitung verfahren 


Zusammenfassung zu den Schritten für die Entstörung:

folgendes ist mir beim start der Datenbank in den Logfiles aufgefallen:
   200322  8:28:21 [ERROR] mysqld: Aria recovery failed. Please run aria_chk -r on all Aria tables and delete all aria_log.######## files
   200322  8:28:21 [ERROR] Plugin 'Aria' init function returned error.
   200322  8:28:21 [ERROR] Plugin 'Aria' registration as a STORAGE ENGINE failed.
   200322  8:28:21 [ERROR] Aria engine is not enabled or did not start. The Aria engine must be enabled to continue as mysqld was configured with --with-aria-tmp-tables
Hier lag also eine Inkonsistenz vor, dies konnte ich beheben indem ich das aria_log_control file neu generiert habe.
Hierzu habe ich die Datei im gestoppten Status von Mariadb entfernt. Beim nächsten Start von Mariadb wurde diese neu generiert und mariadb startete durch.
Nach dem Start habe ich die logs weiter geprüft hierbei ist mir folgendes aufgefallen:
200322 9:00:07 InnoDB: error: space object of table 'patrickbaranek_shopware/s_user_shippingaddress_attributes',
InnoDB: open the tablespace file './patrickbaranek_shopware/s_user_shippingaddress_attributes.ibd'!
Nach Prüfung auf dem Filesystem und den Backups wurde diese Datenbank bereits vor längerer zeit min. Aber vor dem 04.03 gelöscht.
Dies wurde anscheinend nicht "sauber" abgeschlossen, so das mariadb noch dachte die Tabelle wäre existent und daher wurde beim Start von Mariadb ein Fehler geworfen.
Ich habe dies nun wie folgt bereinigt:


Auf dem passenden Server via SSH einloggen

1. temporäre Datenbank anlegen

plesk db
mysql> CREATE SCHEMA recovery;
mysql> use recovery
mysql> CREATE TABLE s_user_shippingaddress_attributes (id INT) ENGINE = InnoDB;


2. temporäre Tabelle kopieren

mkdir /var/lib/mysql/patrickbaranek_shopware
chown mysql:mysql /var/lib/mysql/patrickbaranek_shopware
cp -p /var/lib/mysql/recovery/s_user_shippingaddress_attributes /var/lib/mysql/patrickbaranek_shopware/

3. Bereinigung der Datenbank und Tabelle

mysql> DROP SCHEMA recovery;
mysql> use patrickbaranek_shopware
mysql> DROP TABLE test;
mysql> DROP DATABASE patrickbaranek_shopware;
Hierdurch weiss nun auch Mariadb, dass die Tabellen nicht mehr existieren und wirft keine Fehler mehr.