Installation des MariaDB-Datenbankservers unter AlmaLinux 9 und 10

Linux 4 Min. Lesezeit

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.

Zurück: Linux-Artikel (62)