MariaDB (MySQL) installieren und absichern
MariaDB unter Debian und Ubuntu installieren, mit mariadb-secure-installation absichern und eine Datenbank mit eigenem Benutzer anlegen.
MariaDB ist der Standard-Ersatz für MySQL unter Debian und Ubuntu. Apps und Shops wie WordPress, Nextcloud oder Shopware laufen damit.
1. Installieren
apt install -y mariadb-server
systemctl enable --now mariadb
2. Absichern
mariadb-secure-installation
Ältere Anleitungen nennen das Skript mysql_secure_installation. Bei aktuellen MariaDB-Versionen heißt es mariadb-secure-installation, den alten Namen gibt es nicht überall mehr.
Unter Debian und Ubuntu meldet sich root bei MariaDB über die Unix-Socket-Authentifizierung an: Wer auf dem Server als root angemeldet ist, kommt ohne Passwort hinein, von außen geht das nicht. Das ist gewollt und sicher. Die Fragen des Skripts beantwortest du deshalb so:
| Frage | Antwort |
|---|---|
| Enter current password for root | nur Enter drücken |
| Switch to unix_socket authentication | n, ist schon aktiv |
| Change the root password | n |
| Remove anonymous users | Y |
| Disallow root login remotely | Y |
| Remove test database and access to it | Y |
| Reload privilege tables now | Y |
3. Datenbank und Benutzer anlegen
mariadb
CREATE DATABASE shop CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'shop'@'localhost' IDENTIFIED BY 'langes-zufaelliges-passwort';
GRANT ALL PRIVILEGES ON shop.* TO 'shop'@'localhost';
FLUSH PRIVILEGES;
Gib jeder Anwendung einen eigenen Benutzer mit Rechten nur auf ihre Datenbank.
4. Zugriff von außen?
Am besten gar nicht. Läuft die Anwendung auf demselben Server, bleibt MariaDB auf 127.0.0.1. Brauchst du Fernzugriff, nutze einen SSH-Tunnel:
ssh -L 3306:127.0.0.1:3306 root@DEINE-IP
Danach verbindest du dein Datenbank-Tool mit 127.0.0.1:3306 auf deinem Rechner.
5. Sichern
mariadb-dump --single-transaction shop | gzip > shop-$(date +%F).sql.gz
Willst du die Zeile direkt in die Crontab schreiben, wird aus %F dort \%F, siehe Cronjobs einrichten. Ein vollständiges Skript mit Kopie auf einen zweiten Server steht in Automatische Backups einrichten.