MySQL und MariaDB sind die am weitesten verbreiteten relationalen Datenbanksysteme für Webanwendungen. Sie bilden das Rückgrat vieler Webprojekte und CMS wie WordPress, Joomla oder Drupal. In diesem Leitfaden erfahren Einsteiger, IT-Studierende und Junior Network Engineers, wie MySQL/MariaDB installiert, konfiguriert und sicher betrieben wird, um eine stabile und performante Datenbankumgebung für Webserver zu gewährleisten.
Systemvorbereitung
Bevor die Datenbank installiert wird, sollte das System auf dem neuesten Stand sein und notwendige Pakete installiert werden.
System aktualisieren
sudo apt update
sudo apt upgrade -y
Für CentOS/RHEL:
sudo yum update -y
Hilfspakete installieren
sudo apt install wget curl git unzip -y
Installation von MySQL/MariaDB
Beide Systeme sind kompatibel, MariaDB ist ein Fork von MySQL und bietet zusätzliche Features.
Installation unter Ubuntu/Debian
sudo apt install mariadb-server mariadb-client -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo systemctl status mariadb
Installation unter CentOS/RHEL
sudo yum install mariadb-server mariadb -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo systemctl status mariadb
Grundlegende Konfiguration
Nach der Installation sollte die Datenbank abgesichert und konfiguriert werden, um unbefugten Zugriff zu verhindern.
Initiale Sicherheitseinstellungen
sudo mysql_secure_installation
- Root-Passwort setzen
- Anonyme Benutzer entfernen
- Remote-Root-Zugriff deaktivieren
- Testdatenbank entfernen
- Reload der Privilegien
MySQL/MariaDB Benutzer und Datenbanken anlegen
Beispiel für eine neue Webanwendungsdatenbank:
sudo mysql -u root -p
CREATE DATABASE meinewebsite;
CREATE USER 'webuser'@'localhost' IDENTIFIED BY 'starkesPasswort';
GRANT ALL PRIVILEGES ON meinewebsite.* TO 'webuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Konfiguration für Performance
Die Performance kann durch Anpassung der Konfigurationsdatei /etc/mysql/mariadb.conf.d/50-server.cnf optimiert werden.
Wichtige Parameter
- innodb_buffer_pool_size: Speicherpuffer für InnoDB-Tabellen
- max_connections: Maximale Anzahl gleichzeitiger Verbindungen
- query_cache_size: Größe des Query-Caches
- tmp_table_size: Maximale Größe temporärer Tabellen
- slow_query_log: Aktivierung des Logs für langsame Abfragen
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
[mysqld]
innodb_buffer_pool_size = 1G
max_connections = 200
query_cache_size = 64M
tmp_table_size = 64M
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
sudo systemctl restart mariadb
Backup und Wiederherstellung
Regelmäßige Backups sichern Daten gegen Verlust oder Beschädigung.
Datenbank sichern
mysqldump -u root -p meinewebsite > backup_meinewebsite.sql
Datenbank wiederherstellen
mysql -u root -p meinewebsite < backup_meinewebsite.sql
Sicherheit und Zugriffskontrolle
Eine sichere Konfiguration schützt vor Angriffen wie SQL-Injection oder unbefugtem Zugriff.
Remote-Zugriff einschränken
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
[mysqld]
bind-address = 127.0.0.1
sudo systemctl restart mariadb
Firewall für MySQL-Port konfigurieren
sudo ufw allow 3306/tcp
sudo ufw enable
sudo ufw status
Integration mit Webserver
Die Datenbank wird in der Regel von PHP über MySQLi oder PDO angesprochen.
PHP-Beispielverbindung
<?php
$servername = "localhost";
$username = "webuser";
$password = "starkesPasswort";
$dbname = "meinewebsite";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Verbindung fehlgeschlagen: " . $conn->connect_error);
}
echo "Verbindung erfolgreich!";
?>
Monitoring und Logs
Überwachung hilft, Engpässe zu erkennen und die Datenbank performant zu halten.
Logs prüfen
tail -f /var/log/mysql/error.log
tail -f /var/log/mysql/slow.log
Status und Prozesse anzeigen
mysqladmin -u root -p status
mysqladmin -u root -p processlist
Netzwerkgrundlagen für MySQL/MariaDB
Die Datenbank benötigt ein korrekt konfiguriertes Netzwerk, insbesondere bei Remote-Zugriff.
Subnetzberechnung
Beispiel: IP 192.168.20.30/24
<math>
Subnetzadresse = 192.168.20.30 & 255.255.255.0 = 192.168.20.0
Broadcastadresse = 192.168.20.0 | ~255.255.255.0 = 192.168.20.255
</math>
Netzwerkinterface konfigurieren
sudo nano /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
addresses:
- 192.168.20.30/24
gateway4: 192.168.20.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
sudo netplan apply
Zusätzliche Best Practices
- Regelmäßige Updates von MariaDB/MySQL
- Backups automatisieren, z. B. mit cronjobs
- Benutzerrechte minimal vergeben (Principle of Least Privilege)
- Slow Query Logs analysieren und Abfragen optimieren
- Firewalls und Fail2ban zur Absicherung einsetzen
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.

