MySQL/MariaDB Setup: Sicherheit, Performance und Backups

MySQL und MariaDB gehören zu den am weitesten verbreiteten relationalen Datenbanken im Linux-Serverbetrieb. Ein sicheres und performantes Setup ist entscheidend, um Datenverlust, Angriffe und Performance-Engpässe zu vermeiden. In diesem Tutorial zeigen wir Schritt für Schritt, wie Sie MySQL/MariaDB installieren, absichern, optimieren und regelmäßig Backups durchführen.

Installation von MySQL/MariaDB

Auf Debian/Ubuntu-Systemen installieren Sie MariaDB/MySQL über APT:

sudo apt update
sudo apt install mariadb-server mariadb-client

Auf RHEL/CentOS/Fedora nutzen Sie DNF/YUM:

sudo dnf install mariadb-server mariadb
sudo systemctl enable mariadb
sudo systemctl start mariadb

Erstkonfiguration und Absicherung

Nach der Installation sollte die Datenbank abgesichert werden:

sudo mysql_secure_installation

Folgende Punkte sollten Sie dabei beachten:

  • Root-Passwort setzen
  • Anonyme Benutzer entfernen
  • Remote-Root-Login deaktivieren
  • Testdatenbank löschen
  • Privilege-Tabellen neu laden

Datenbank-Benutzer und Rechte

Erstellen Sie für Anwendungen dedizierte Benutzer und gewähren Sie nur notwendige Rechte:

sudo mysql -u root -p
CREATE DATABASE webapp_db;
CREATE USER 'webapp'@'localhost' IDENTIFIED BY 'SicheresPasswort';
GRANT ALL PRIVILEGES ON webapp_db.* TO 'webapp'@'localhost';
FLUSH PRIVILEGES;
q

Verwenden Sie niemals den Root-Benutzer für Applikationen.

Netzwerkabsicherung

Die MySQL/MariaDB-Dienste sollten nur von vertrauenswürdigen Hosts erreichbar sein. Passen Sie die Bind-Adresse in /etc/mysql/mariadb.conf.d/50-server.cnf an:

[mysqld]
bind-address = 127.0.0.1

Firewall-Regeln sorgen zusätzlich für Sicherheit:

sudo ufw allow from 192.168.1.0/24 to any port 3306
sudo ufw enable

SSL für verschlüsselte Verbindungen

Aktivieren Sie SSL, um Daten zwischen Clients und Server zu verschlüsseln:

[mysqld]
ssl-ca=/etc/mysql/ssl/ca.pem
ssl-cert=/etc/mysql/ssl/server-cert.pem
ssl-key=/etc/mysql/ssl/server-key.pem

Clientseitig können Sie die SSL-Verbindung mit folgenden Parametern erzwingen:

mysql -u webapp -p --ssl-ca=/etc/mysql/ssl/ca.pem --ssl-cert=/etc/mysql/ssl/client-cert.pem --ssl-key=/etc/mysql/ssl/client-key.pem

Performance-Tuning

Optimieren Sie die MySQL/MariaDB-Parameter in /etc/mysql/my.cnf oder mysqld.cnf:

  • innodb_buffer_pool_size: Speicher für InnoDB-Tabellen (ca. 70-80% des RAM)
  • max_connections: Anzahl gleichzeitiger Verbindungen
  • query_cache_size: Cache für häufige Abfragen (nur bei älteren Versionen)
  • tmp_table_size und max_heap_table_size: Größe temporärer Tabellen
  • slow_query_log: Aktivieren Sie das Logging langsamer Abfragen

Backups einrichten

Regelmäßige Backups sind entscheidend für Disaster Recovery. Beispiele:

  • Einzelne Datenbanken:
  • mysqldump -u webapp -p webapp_db > /backup/webapp_db_$(date +%F).sql
  • Alle Datenbanken:
  • mysqldump -u root -p --all-databases > /backup/all_dbs_$(date +%F).sql
  • Automatisierung per Cronjob:
  • 0 2 * * * /usr/bin/mysqldump -u webapp -p'SicheresPasswort' webapp_db | gzip > /backup/webapp_db_$(date +%F).sql.gz

Monitoring und Logs

Überwachen Sie den Datenbankbetrieb:

  • Prüfen Sie laufende Abfragen:
  • mysql -u root -p
    SHOW PROCESSLIST;
  • Slow Query Log analysieren
  • Optionale Tools: Percona Monitoring, Prometheus + mysqld_exporter

Updates und Sicherheit

  • Regelmäßig Sicherheitsupdates installieren:
  • sudo apt update && sudo apt upgrade mariadb-server
  • Starke Passwörter für alle Benutzer
  • Unnötige Accounts deaktivieren
  • Regelmäßig Berechtigungen prüfen

Zusammenfassung der Best Practices

  • Dedizierte Benutzer für jede Applikation
  • Root-Zugang auf localhost beschränken
  • SSL für alle externen Verbindungen
  • Regelmäßige Backups und Test der Wiederherstellung
  • Monitoring von Abfragen und Systemressourcen
  • Firewall und Netzwerkzugriff kontrollieren
  • Regelmäßige Updates und Sicherheitsprüfungen

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles