MariaDB ist aus MySQL hervorgegangen, weitgehend mit diesem kompatibel und ein Open-Source-Datenbankserver; WordPress und die meisten PHP-Anwendungen nutzen ihn ohne Anpassungen. Dieser Artikel beschreibt die Installation auf einem VPS ohne Control Panel; zusammen mit dem Webserver bildet die Installation von Apache und PHP-FPM, die im entsprechenden Artikel beschrieben wird, eine vollständige LAMP-Umgebung.
Wir haben die Schritte im Oktober 2026 auf den Systemen AlmaLinux 9.8 und 10.2 getestet. Führen Sie die Befehle bitte mit einem Benutzer aus, der über sudo-Rechte verfügt.
1. Welche Version?
| System | Standard | Weitere Versionen im Repository des Systems |
|---|---|---|
| AlmaLinux 10 | MariaDB 10.11 | MariaDB 11.8 (Paket „mariadb11.8-server“) |
| AlmaLinux 9 | MariaDB 10.5 | MariaDB 10.11 und 11.8 als Module |
Unter AlmaLinux 9 wird der standardmäßige Zweig 10.5 von den MariaDB-Entwicklern nicht mehr unterstützt; wählen Sie daher dort ein Modul aus. Sowohl 10.11 als auch 11.8 sind Langzeit-Support-Versionen (LTS); für eine Neuinstallation ist 11.8 die aktuellere Version.
Auswahl des Moduls unter AlmaLinux 9:
sudo dnf module enable mariadb:11.8
2. Installation und Inbetriebnahme
sudo dnf install mariadb-server
sudo systemctl enable --now mariadb
Unter AlmaLinux 10 lautet der Name des Pakets für Version 11.8 „mariadb11.8-server“. Im Test wurde unter AlmaLinux 9 das Modul „mariadb-server-11.8.8“ installiert.
Überprüfung:
sudo mariadb -e "SELECT VERSION();"
3. Der Root-Benutzer: Unix-Socket anstelle eines Passworts
Der MariaDB-root-Benutzer meldet sich seit Version 10.4 ohne Passwort mit root-Rechten an: „sudo mariadb“ funktioniert, während „mariadb -u root“ als normaler Benutzer folgenden Fehler ausgibt:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
Dies ist sicher und komfortabel: Sie müssen kein Passwort für das Root-Konto der Datenbank speichern, und ein Zugriff von außen ist nicht möglich. Richten Sie kein Passwort ein, nur damit eine Anwendung als Root eine Verbindung herstellen kann; erstellen Sie für Anwendungen einen eigenen Benutzer (siehe Punkt 5).
4. Grundlegende Sicherheitseinstellungen
sudo mariadb-secure-installation
(Der alte Name „mysql_secure_installation“ funktioniert ebenfalls.) Auf die Fragen des Skripts haben wir im Test wie folgt geantwortet:
| Frage | Vorgeschlagene Antwort |
|---|---|
| Geben Sie das aktuelle Passwort für „root“ ein | Enterieren (kein Passwort) |
| Wechseln Sie zur Unix-Socket-Authentifizierung | n (funktioniert bereits so) |
| Das Root-Passwort ändern? | n |
| Anonyme Benutzer entfernen? | Y |
| Soll die Remote-Anmeldung als Root untersagt werden? | Y |
| Testdatenbank und Zugriff darauf entfernen? | Y |
| Sollen die Berechtigungstabellen jetzt neu geladen werden? | Y |
Am Ende erscheint die Meldung „All done!“.
5. Datenbank und Benutzer anlegen
Erstellen Sie für jede Anwendung (beispielsweise für jede WordPress-Seite) eine eigene Datenbank und einen eigenen Benutzer, der ausschließlich über die für seine Datenbank erforderlichen Berechtigungen verfügt:
sudo mariadb
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'Hosszu-Egyedi-Jelszo';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Test mit dem neuen Benutzer:
mariadb -u wpuser -p -e "SELECT CURRENT_USER(); SHOW DATABASES;"
Im Test konnte der Benutzer lediglich die Datenbank „information_schema“ sowie seine eigene „wordpress“-Datenbank einsehen.
6. Der Zugriff von außen sollte nicht möglich sein
Im Test wurde MariaDB nach der Installation auf allen Netzwerk-Schnittstellen überwacht (gemäß „ss -tlnp“ unter 0.0.0.0:3306), d. h., ohne Firewall hätte man auch vom Internet aus darauf zugreifen können. Wenn die Datenbank ausschließlich von einer Anwendung genutzt wird, die auf demselben Server läuft (was der typische Fall ist), beschränken Sie den Zugriff auf die lokale Adresse. Fügen Sie im Abschnitt [mysqld] der Datei /etc/my.cnf.d/mariadb-server.cnf Folgendes ein:
bind-address = 127.0.0.1
sudo systemctl restart mariadb
sudo ss -tlnp | grep 3306
Nach dem Test blieb nur noch 127.0.0.1:3306 übrig. Falls auf dem Server „firewalld“ läuft, öffnen Sie den Port 3306 bitte nicht; nutzen Sie für den Fernzugriff stattdessen einen SSH-Tunnel.
7. Arbeitsspeicher
Die Größe des InnoDB-Caches (innodb_buffer_pool_size) beträgt standardmäßig 128 MB. Wenn die Datenbank größer ist und auf dem Server freier Arbeitsspeicher verfügbar ist, erhöhen Sie den Wert im Abschnitt /etc/my.cnf.d/mariadb-server.cnf der Datei [mysqld] (beispielsweise innodb_buffer_pool_size = 512M). Falls der Webserver ebenfalls auf demselben Rechner läuft, weisen Sie ihm höchstens 40–50 % des gesamten Arbeitsspeichers zu; andernfalls könnte der OOM-Killer die Datenbank herunterfahren (siehe: Kein Speicher mehr: OOM-Killer und Auslagerungsdatei).
Speichern
sudo mariadb-dump --single-transaction wordpress > wordpress-$(date +%F).sql
Ausführliche Informationen zu Backups und Wiederherstellungen finden Sie im Artikel „Wie kann man Daten unter Linux sichern und wiederherstellen?“.
Nützliche Befehle
| Befehl | Was macht das Programm? |
|---|---|
sudo systemctl status mariadb |
Ist der Dienst in Betrieb? |
sudo systemctl restart mariadb |
Neustart (z. B. nach einer Änderung der Einstellungen) |
sudo journalctl -u mariadb |
Protokoll des Dienstes |
sudo mariadb |
Anmeldung als Root |
mariadb -u felhasznalo -p adatbazis |
Anmeldung mit einem Benutzer einer Anwendung |
Wenn Sie keinen eigenen Datenbankserver betreiben möchten, können Sie die Datenbanken bei cPanel-Hosting-Paketen über die Benutzeroberfläche anlegen (siehe: Anlegen von MySQL-Datenbanken und -Benutzern bei cPanel-Hosting) oder auf Ihrem eigenen KVM-VPS mithilfe der oben beschriebenen Schritte installieren.