Fehlerbehebungshandbuch für MariaDB-Dienste
MariaDB ist ein quelloffenes relationales Datenbankverwaltungssystem, das in verschiedenen Anwendungsbereichen weit verbreitet ist. Obwohl MariaDB in der Regel stabil läuft, können in bestimmten Situationen Betriebsstörungen oder Leistungsprobleme auftreten. Dieser Artikel beschreibt detailliert, wie man MariaDB-Dienste in ServBay diagnostiziert und behebt, einschließlich gängiger Probleme, Diagnoseverfahren und Lösungen. ServBay läuft auf macOS und enthält verschiedene Versionen von MariaDB, daher müssen in einigen Befehlen versionsspezifische Konfigurationsdateien und Verzeichnisse angegeben werden.
Häufige Probleme und Lösungen
1. MariaDB-Dienst startet nicht
Mögliche Ursachen
- Fehler in der Konfigurationsdatei
- Port wird bereits verwendet
- Berechtigungsprobleme
Lösungen
Überprüfen Sie die Konfigurationsdatei: Stellen Sie sicher, dass die Syntax der Konfigurationsdatei
my.cnf
korrekt ist. Der Pfad lautet:bash/Applications/ServBay/etc/mariadb/11.3/my.cnf
1Validieren Sie die Konfigurationsdatei mit folgendem Befehl:
bashmysqld --defaults-file=/Applications/ServBay/etc/mariadb/11.3/my.cnf --validate-config
1Überprüfen Sie die Portverwendung: Stellen Sie sicher, dass der von MariaDB verwendete Port (standardmäßig 3306) nicht von einem anderen Prozess verwendet wird. Überprüfen Sie die Portverwendung mit folgendem Befehl:
bashlsof -i :3306
1Überprüfen Sie die Berechtigungen: Stellen Sie sicher, dass die Berechtigungen für das Datenverzeichnis und die Konfigurationsdatei von MariaDB korrekt sind. Überprüfen Sie die Berechtigungen mit folgendem Befehl:
bashls -l /Applications/ServBay/db/mariadb/11.3 ls -l /Applications/ServBay/etc/mariadb/11.3/my.cnf
1
2Dienst neu starten: Versuchen Sie, den MariaDB-Dienst erneut zu starten:
bashservbayctl restart mariadb 11.3
1
2. Verbindung zu MariaDB nicht möglich
Mögliche Ursachen
- MariaDB-Dienst läuft nicht
- Firewall blockiert die Verbindung
- Benutzerberechtigungsprobleme
Lösungen
Überprüfen Sie den Dienststatus: Stellen Sie sicher, dass der MariaDB-Dienst läuft:
bashservbayctl status mariadb 11.3
1Überprüfen Sie die Firewall-Einstellungen: Stellen Sie sicher, dass die Firewall den Port von MariaDB (standardmäßig 3306) zulässt:
bashsudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/ServBay/bin/mysqld sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /Applications/ServBay/bin/mysqld
1
2Überprüfen Sie die Benutzerberechtigungen: Stellen Sie sicher, dass der Benutzer über ausreichende Berechtigungen verfügt, um sich mit der Datenbank zu verbinden:
sqlSHOW GRANTS FOR 'your_username'@'localhost';
1Verbindungstest: Testen Sie die Verbindung mit folgendem Befehl:
bashmysql --defaults-file=/Applications/ServBay/etc/mariadb/11.3/my.cnf -u your_username -p -h localhost -P 3306
1
3. Leistungsprobleme
Mögliche Ursachen
- Abfragen sind nicht optimiert
- Falsche Cache-Konfiguration
- Fehlende Indizes
Lösungen
Abfragen optimieren: Verwenden Sie
EXPLAIN
zur Analyse der Abfrageleistung und nehmen Sie entsprechende Optimierungen vor:sqlEXPLAIN SELECT * FROM your_table_name WHERE column_name = 'value';
1Cache-Einstellungen anpassen: Passen Sie die Cache-Einstellungen in
my.cnf
an, zum Beispiel:[mysqld] query_cache_size = 64M innodb_buffer_pool_size = 1G
1
2
3Indizes erstellen: Stellen Sie sicher, dass für häufig verwendete Abfrage-Spalten Indizes erstellt sind:
sqlCREATE INDEX idx_column_name ON your_table_name(column_name);
1
4. Datenbankabsturz
Mögliche Ursachen
- Hardwarefehler
- Softwarekonflikte
- Konfigurationsfehler
Lösungen
Fehlerprotokoll überprüfen: Überprüfen Sie das Fehlerprotokoll von MariaDB, um die genaue Ursache des Absturzes zu finden. Der Fehlerprotokollpfad lautet:
bash/Applications/ServBay/logs/mariadb/11.3.err
1Datenbank reparieren: Verwenden Sie das
mysqlcheck
-Tool, um die Datenbank zu reparieren:bashmysqlcheck --defaults-file=/Applications/ServBay/etc/mariadb/11.3/my.cnf -u your_username -p --auto-repair --all-databases
1Daten wiederherstellen: Wenn Datenbankdateien beschädigt sind, können Sie die Daten aus einem Backup wiederherstellen. Der Pfad zum Backup lautet:
bash/Applications/ServBay/backup/mariadb/11.3
1
5. Backup- und Wiederherstellungsprobleme
Mögliche Ursachen
- Beschädigte Backup-Datei
- Fehlerhafte Wiederherstellungsbefehle
Lösungen
Backup-Datei überprüfen: Stellen Sie sicher, dass die Backup-Datei vollständig und nicht beschädigt ist. Überprüfen Sie die Dateigröße und Integrität mit folgendem Befehl:
bashls -lh /Applications/ServBay/backup/mariadb/11.3/your_backup.sql
1Datenbank korrekt wiederherstellen: Verwenden Sie das
mysql
-Tool, um die Datenbank korrekt wiederherzustellen:bashmysql --defaults-file=/Applications/ServBay/etc/mariadb/11.3/my.cnf -u your_username -p your_database < /Applications/ServBay/backup/mariadb/11.3/your_backup.sql
1
Spezifisches Problem: ib_logfile0 was not found
und InnoDB: Missing FILE_CHECKPOINT(47594) at 47594
Mögliche Ursachen
- Bug in MariaDB 11.5.1
Fehlerprotokoll
240618 22:37:46 mysqld_safe Starting mariadbd daemon with databases from /Applications/ServBay/db/mariadb/11.5
2024-06-18 22:37:46 0 [Note] Starting MariaDB 11.5.1-MariaDB-log source revision 65079ece42f383bdeb9b3f913a833a6f0123919d as process 3323
2024-06-18 22:37:46 0 [Warning] Setting lower_case_table_names=2 because file system for /Applications/ServBay/db/mariadb/11.5/ is case insensitive
2024-06-18 22:37:47 0 [Warning] --innodb-file-per-table is deprecated and will be removed in a future release
2024-06-18 22:37:47 0 [Note] InnoDB: Compressed tables use zlib 1.3.1
2024-06-18 22:37:47 0 [Note] InnoDB: Number of transaction pools: 1
2024-06-18 22:37:47 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
2024-06-18 22:37:47 0 [Note] InnoDB: Initializing buffer pool, total size = 4.000GiB, chunk size = 64.000MiB
2024-06-18 22:37:47 0 [Note] InnoDB: Completed initialization of buffer pool
2024-06-18 22:37:47 0 [ERROR] InnoDB: File /Applications/ServBay/db/mariadb/11.5/ib_logfile0 was not found
2024-06-18 22:37:47 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2024-06-18 22:37:47 0 [Note] InnoDB: Starting shutdown...
2024-06-18 22:37:47 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2024-06-18 22:37:47 0 [Note] Plugin 'FEEDBACK' is disabled.
2024-06-18 22:37:47 0 [Note] Plugin 'wsrep-provider' is disabled.
2024-06-18 22:37:47 0 [ERROR] Unknown/unsupported storage engine: InnoDB
2024-06-18 22:37:47 0 [ERROR] Aborting
240618 22:37:48 mysqld_safe mysqld from pid file /Applications/ServBay/tmp/mariadb-11.5.pid ended
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
240618 23:22:28 mysqld_safe Starting mariadbd daemon with databases from /Applications/ServBay/db/mariadb/11.5
2024-06-18 23:22:28 0 [Note] Starting MariaDB 11.5.1-MariaDB-log source revision 65079ece42f383bdeb9b3f913a833a6f0123919d as process 6667
2024-06-18 23:22:28 0 [Warning] Setting lower_case_table_names=2 because file system for /Applications/ServBay/db/mariadb/11.5/ is case insensitive
2024-06-18 23:22:29 0 [Warning] --innodb-file-per-table is deprecated and will be removed in a future release
2024-06-18 23:22:29 0 [Note] InnoDB: Compressed tables use zlib 1.3.1
2024-06-18 23:22:29 0 [Note] InnoDB: Number of transaction pools: 1
2024-06-18 23:22:29 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
2024-06-18 23:22:29 0 [Note] InnoDB: Initializing buffer pool, total size = 4.000GiB, chunk size = 64.000MiB
2024-06-18 23:22:29 0 [Note] InnoDB: Completed initialization of buffer pool
2024-06-18 23:22:29 0 [ERROR] InnoDB: Missing FILE_CHECKPOINT(47594) at 47594
2024-06-18 23:22:29 0 [ERROR] InnoDB: Log scan aborted at LSN 47594
2024-06-18 23:22:29 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2024-06-18 23:22:29 0 [Note] InnoDB: Starting shutdown...
2024-06-18 23:22:29 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2024-06-18 23:22:29 0 [Note] Plugin 'FEEDBACK' is disabled.
2024-06-18 23:22:29 0 [Note] Plugin 'wsrep-provider' is disabled.
2024-06-18 23:22:29 0 [ERROR] Unknown/unsupported storage engine: InnoDB
2024-06-18 23:22:29 0 [ERROR] Aborting
240618 23:22:29 mysqld_safe mysqld from pid file /Applications/ServBay/tmp/mariadb-11.5.pid ended
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Lösungen
Beziehen Sie sich auf den Artikel Änderung der MariaDB-Einstellungen, um my.cnf
zu finden, und folgen Sie dann diesen detaillierten Schritten:
Fügen Sie im
my.cnf
Abschnitt[mysqld]
innodb_force_recovery = 6
hinzuBearbeiten Sie die Konfigurationsdatei
my.cnf
, finden Sie[mysqld]
und fügen Sie die folgende Zeile hinzu:iniinnodb_force_recovery = 6
1Starten Sie MariaDB
Verwenden Sie den folgenden Befehl, um MariaDB zu starten:
bashservbayctl start mariadb 11.5
1Backup von MariaDB erstellen
Verwenden Sie den
mysqldump
Befehl, um alle Datenbanken zu sichern:bashmysqldump -uroot -p --all-databases --opt > /Applications/ServBay/backup/mariadb/11.5/mariadb_backup.sql
1MariaDB-Dienst deaktivieren
Deaktivieren Sie den MariaDB 11.5-Dienst im Verwaltungsbereich von ServBay
Entfernen Sie
innodb_force_recovery = 6
ausmy.cnf
Bearbeiten Sie die Konfigurationsdatei
my.cnf
und entfernen Sie die folgende Zeile:iniinnodb_force_recovery = 6
1Verzeichnis
11.5
umbenennenBenennen Sie das MariaDB-Datenverzeichnis
11.5
in11.5.bak
um:bashmv /Applications/ServBay/db/mariadb/11.5 /Applications/ServBay/db/mariadb/11.5.bak
1Wechseln Sie zu einer anderen MariaDB-Version
Wechseln Sie zu einer funktionierenden MariaDB-Version, zum Beispiel 11.5.0 oder anderen Versionen wie 11.3, 11.4.
MariaDB-Backup wiederherstellen
Verwenden Sie den
mysql
Befehl, um die Datenbank wiederherzustellen:bashmysql -uroot -p < /Applications/ServBay/backup/mariadb/11.5/mariadb_backup.sql
1
Zusammenfassung
MariaDB ist ein leistungsfähiges und flexibles Datenbankverwaltungssystem, aber bei der Verwendung können verschiedene Probleme auftreten. Durch die in diesem Artikel beschriebenen Schritte können Sie MariaDB-Dienste diagnostizieren und beheben, einschließlich der Diagnose und Lösung häufiger Probleme. Wir hoffen, dass dieser Artikel Ihnen hilft. Sollten Sie weitere Fragen haben oder Unterstützung benötigen, zögern Sie nicht, uns zu kontaktieren.