MariaDB – Wartung und praktische Beispiele

Aus Xinux Wiki
Version vom 24. März 2025, 15:38 Uhr von Thomas.will (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „= MariaDB – Wartung und praktische Beispiele = == Benutzerverwaltung überprüfen und bereinigen == * Zeige alle Benutzer mit Hostangabe: * SELECT User, Ho…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

MariaDB – Wartung und praktische Beispiele

Benutzerverwaltung überprüfen und bereinigen

  • Zeige alle Benutzer mit Hostangabe:
  • SELECT User, Host FROM mysql.user;
  • Entferne ungenutzte Benutzer:
  • DROP USER 'test'@'%';
  • Setze ein Passwort neu:
  • ALTER USER 'admin'@'localhost' IDENTIFIED BY 'NeuesPasswort123';

Datenbankgrößen anzeigen und überwachen

  • Übersicht aller Datenbanken mit Größe:
  • SELECT table_schema "Datenbank", ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) "Größe in MB" FROM information_schema.tables GROUP BY table_schema;

Tabellen analysieren und optimieren

  • Tabellen analysieren zur Aktualisierung der Statistiken:
  • ANALYZE TABLE kunden, bestellungen;
  • Tabellen optimieren um Speicher freizugeben:
  • OPTIMIZE TABLE kunden;

Alte Logs bereinigen

  • Binärlogs anzeigen:
  • SHOW BINARY LOGS;
  • Alte Binärlogs löschen (bis zu einer bestimmten Datei):
  • PURGE BINARY LOGS TO 'mysql-bin.000025';
  • Oder nach Datum löschen:
  • PURGE BINARY LOGS BEFORE '2025-01-01 00:00:00';

Tabellen auf Fehler prüfen

  • Eine einzelne Tabelle prüfen:
  • CHECK TABLE kunden;
  • Alle Tabellen in einer Datenbank prüfen:
  • mysqlcheck -u root -p --check firma;

Backup und Wiederherstellung

  • Backup einer einzelnen Datenbank:
  • mysqldump -u root -p firma > firma.sql
  • Backup aller Datenbanken:
  • mysqldump -u root -p --all-databases > alle_dbs.sql
  • Wiederherstellen einer Datenbank:
  • mysql -u root -p firma < firma.sql

Autovacuum und Tuning überprüfen

  • Konfigurationsdatei anpassen:

In der Datei /etc/mysql/mariadb.conf.d/50-server.cnf unter dem Abschnitt [mysqld] sinnvolle Werte eintragen: innodb_buffer_pool_size = 512M max_connections = 100 query_cache_size = 64M

  • Danach MariaDB neu starten:
  • systemctl restart mariadb

Protokollierung und Langsame Abfragen aktivieren

  • Langsame Abfragen in der Konfig aktivieren:

In der Datei /etc/mysql/mariadb.conf.d/50-server.cnf einfügen: slow_query_log = 1 slow_query_log_file = /var/log/mysql/slow.log long_query_time = 1

  • Dienst neu starten:
  • systemctl restart mariadb
  • Langsame Abfragen anzeigen:
  • cat /var/log/mysql/slow.log

Speicherplatz prüfen und aufräumen

  • Speicherplatz prüfen:
  • du -sh /var/lib/mysql/*
  • Nicht mehr benötigte alte Dumps löschen:
  • rm -f /var/backups/sql/alte_datei.sql

Automatisierte tägliche Sicherung einrichten

  • Cronjob einrichten:
  • crontab -e
  • Beispiel für tägliches Backup um 2 Uhr nachts:
  • 0 2 * * * mysqldump -u root -p123Start$ firma > /var/backups/sql/firma_$(date +\%F).sql

Sicherheit: Rechte von Benutzern regelmäßig prüfen

  • Alle Berechtigungen anzeigen:
  • SHOW GRANTS FOR 'webuser'@'localhost';
  • Unnötige Berechtigungen entziehen:
  • REVOKE DROP ON firma.* FROM 'webuser'@'localhost';