MySQL und MariaDB installieren: Linux-Anleitung
MySQL-kompatibles MariaDB auf einem Linux-Server installieren: sichere Grundeinstellungen, Datenbank und Benutzer, Fernzugriff, SSH-Tunnel, Backups.

Inhalt
MariaDB ist eine MySQL-kompatible, quelloffene und kostenlose relationale Datenbank. WordPress, Laravel, FiveM-Server, Discord-Bots und unzählige Webanwendungen speichern ihre Daten in MySQL oder MariaDB. MariaDB auf dem eigenen Server zu installieren dauert nur wenige Minuten; wirklich wichtig ist, die Grundeinstellungen sicher vorzunehmen, die richtigen Benutzer für Ihre Anwendungen anzulegen und die Datenbank regelmäßig zu sichern.
In dieser Anleitung zeigen wir, wie Sie MariaDB auf Ubuntu-, Debian- und AlmaLinux-Servern installieren, die Grundeinstellungen absichern, Datenbanken und Benutzer anlegen, sich sicher aus der Ferne verbinden, Backups erstellen und grundlegende Performance-Einstellungen vornehmen.
Der Unterschied zwischen MySQL und MariaDB
MariaDB wurde von den ursprünglichen Entwicklern von MySQL aus MySQL abgeleitet und über viele Jahre so weiterentwickelt, dass es eins zu eins kompatibel blieb. Befehle, Client-Tools und Verbindungsprotokoll sind gleich; nahezu alle Anwendungen, die MySQL erwarten, laufen ohne Änderungen mit MariaDB.
| Merkmal | MariaDB | MySQL |
|---|---|---|
| Lizenz | Open Source (GPL) | Open-Source-Community- und kommerzielle Edition |
| Standard unter | Debian, AlmaLinux, Rocky Linux | Paket mysql-server von Ubuntu |
| Kompatibilität | Mit MySQL-Clients und -Anwendungen | Das Original |
| Typischer Einsatz | Websites, Gameserver, Bots | Projekte, die Funktionen von MySQL 8 brauchen |
In dieser Anleitung verwenden wir MariaDB. Wenn Sie unter Ubuntu MySQL bevorzugen, installieren Sie es mit sudo apt install mysql-server; die folgenden SQL-Befehle sind fast alle identisch.
MariaDB unter Ubuntu und Debian installieren
Nachdem Sie sich per SSH mit dem Server verbunden haben:
sudo apt update
sudo apt install mariadb-server
systemctl status mariadb
Zeigt der Dienst active (running), ist die Installation abgeschlossen.
Unter AlmaLinux und Rocky Linux:
sudo dnf install mariadb-server
sudo systemctl enable --now mariadb
Sichere Grundeinstellungen
Führen Sie direkt nach der Installation das Sicherheitsskript aus:
sudo mariadb-secure-installation
Das Skript stellt Ihnen einige Fragen. Empfohlene Antworten:
- Anonyme Benutzer entfernen: Ja.
- Root-Anmeldung aus der Ferne verbieten: Ja.
- Testdatenbank entfernen: Ja.
- Berechtigungstabellen neu laden: Ja.
Bei aktuellen Installationen unter Ubuntu und Debian wird der Benutzer root nicht per Passwort, sondern über unix_socket authentifiziert: Haben Sie auf dem Server sudo-Rechte, verbinden Sie sich ohne Passwort; von außen ist eine Anmeldung als root gar nicht möglich. Das ist ein sicherer Standard, den Sie nicht ändern müssen. So öffnen Sie die MariaDB-Konsole:
sudo mariadb
Datenbank und Benutzer anlegen
Legen Sie für jede Anwendung eine eigene Datenbank und einen eigenen Benutzer an, der nur Rechte auf diese Datenbank hat. So wirkt sich eine Sicherheitslücke in einer Anwendung nicht auf Ihre anderen Datenbanken aus. In der MariaDB-Konsole:
CREATE DATABASE app CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'app'@'localhost' IDENTIFIED BY 'ein-starkes-passwort';
GRANT ALL PRIVILEGES ON app.* TO 'app'@'localhost';
FLUSH PRIVILEGES;
EXIT;
utf8mb4: Speichert alle Unicode-Zeichen korrekt, einschließlich Umlauten und Emojis. Verwenden Sie es immer anstelle des altenutf8.'app'@'localhost': Legt fest, dass sich der Benutzer nur vom Server selbst aus verbinden kann. Läuft Ihre Anwendung auf demselben Server, ist das die richtige Wahl.GRANT ALL PRIVILEGES ON app.*: Gibt dem Benutzer nur Rechte auf seine eigene Datenbank.
Tragen Sie in die Verbindungseinstellungen Ihrer Anwendung localhost als Server, 3306 als Port sowie den angelegten Benutzernamen, das Passwort und den Datenbanknamen ein. Wie das bei FiveM-Servern funktioniert, zeigen wir in unserer Anleitung FiveM Server erstellen.
Sichere Verbindung aus der Ferne
Vielleicht möchten Sie Ihre Datenbank mit Desktop-Tools wie HeidiSQL, DBeaver oder MySQL Workbench verwalten. Dafür gibt es zwei Wege.
Empfohlen: SSH-Tunnel
MariaDB lauscht weiterhin nur auf 127.0.0.1, und Port 3306 wird gar nicht ins Internet geöffnet. Die Verbindung läuft durch die verschlüsselte SSH-Verbindung:
ssh -L 3307:127.0.0.1:3306 benutzer@203.0.113.10
Solange dieser Befehl läuft, verbinden Sie sich über die Adresse 127.0.0.1:3307 auf Ihrem eigenen Computer in Wirklichkeit mit der Datenbank auf dem Server. Tools wie HeidiSQL und DBeaver bieten in den Verbindungseinstellungen auch eine fertige Option für einen SSH-Tunnel; Sie müssen nur die SSH-Daten des Servers eintragen.
Direkte Verbindung
Muss sich eine Anwendung auf einem anderen Server direkt mit der Datenbank verbinden:
- Ändern Sie in der Datei
/etc/mysql/mariadb.conf.d/50-server.cnfdie Zeilebind-address = 127.0.0.1inbind-address = 0.0.0.0und starten Sie den Dienst mitsudo systemctl restart mariadbneu. - Legen Sie einen Benutzer an, der nur von der IP-Adresse aus zugelassen ist, die sich verbinden soll:
CREATE USER 'app'@'198.51.100.7' IDENTIFIED BY 'ein-starkes-passwort'; GRANT ALL PRIVILEGES ON app.* TO 'app'@'198.51.100.7'; - Öffnen Sie Port 3306 in der Firewall nur für diese IP-Adresse:
sudo ufw allow from 198.51.100.7 to any port 3306 proto tcp
Wer den Datenbankport für alle öffnet, sieht seinen Server innerhalb von Minuten automatisierten Passwort-Rateangriffen ausgesetzt. Vermeiden Sie Benutzer wie 'benutzer'@'%', die sich von überall verbinden können. Ports und Firewall-Einstellungen erklären wir ausführlich in Was ist ein Port?
Backup und Wiederherstellung
Die Datenbank enthält die wertvollsten Daten auf Ihrem Server. Mit mariadb-dump (bei MySQL mysqldump) erstellen Sie ein konsistentes Backup:
sudo mariadb-dump --single-transaction --routines app | gzip > app-$(date +%F).sql.gz
--single-transaction sichert InnoDB-Tabellen, ohne die Datenbank zu sperren, und zu einem konsistenten Zeitpunkt. So stellen Sie das Backup wieder her:
gunzip < app-2026-10-14.sql.gz | sudo mariadb app
Um das Backup zu automatisieren, legen Sie zuerst mit sudo mkdir -p /root/backups einen Ordner an und fügen dann mit sudo crontab -e eine Aufgabe hinzu, die jede Nacht läuft:
0 4 * * * mariadb-dump --single-transaction --routines app | gzip > /root/backups/app-$(date +\%F).sql.gz
In der Crontab müssen Sie dem Zeichen % ein \ voranstellen. Bewahren Sie Backups nicht nur auf demselben Server auf; schicken Sie unbedingt eine Kopie an einen anderen Ort. Wie das geht, zeigen wir in unserer Anleitung Server Backup.
Grundlegende Performance-Einstellungen
Mit den Standardeinstellungen läuft MariaDB in kleinen Projekten problemlos. Wachsen Ihre Daten, machen die folgenden Einstellungen einen Unterschied; sie alle gehören in den Abschnitt [mysqld] der Datei /etc/mysql/mariadb.conf.d/50-server.cnf:
[mysqld]
innodb_buffer_pool_size = 2G
max_connections = 200
slow_query_log = 1
long_query_time = 1
innodb_buffer_pool_size: Der Bereich, in dem Daten und Indizes im Arbeitsspeicher gehalten werden. Diese Einstellung beeinflusst die Leistung am stärksten. Wählen Sie auf einem Server, auf dem nur die Datenbank läuft, etwas mehr als die Hälfte des RAM; läuft die Anwendung auf demselben Server, einen vernünftigen Wert, der die gesamte Datenmenge abdeckt.max_connections: Die maximale Anzahl gleichzeitig offener Verbindungen.slow_query_log: Schreibt Abfragen, die länger als die festgelegte Zeit (long_query_time, in Sekunden) dauern, ins Log. Das ist der einfachste Weg, die Ursache von Verlangsamungen zu finden; meist deutet sie auf einen fehlenden Index hin.
Unter AlmaLinux und Rocky Linux liegt die Konfigurationsdatei unter /etc/my.cnf.d/mariadb-server.cnf. Starten Sie den Dienst nach Änderungen mit sudo systemctl restart mariadb neu.
Nodesty-Server für Ihre Datenbank
Die Datenbankleistung hängt stark von der Geschwindigkeit des Speichers und vom Arbeitsspeicher ab. Die AMD EPYC 7763 vServer von Nodesty eignen sich mit ihrem großen RAM für Datenbanken, die einen großen Buffer Pool benötigen, die AMD Ryzen 9 9950X vServer mit ihrer hohen Single-Core-Leistung für Anwendungen und Gameserver, die schnell antworten müssen. Beide Pakete bieten NVMe-Speicher, DDoS-Schutz durch nShield und kostenlose tägliche Backups mit 7 Tagen Aufbewahrung.
Häufig gestellte Fragen
Soll ich MySQL oder MariaDB installieren?
Für die meisten Projekte erfüllen beide ihren Zweck. MariaDB ist eine aus MySQL hervorgegangene Open-Source-Datenbank; sie ist unter Debian und AlmaLinux Standard und arbeitet problemlos mit Software zusammen, die MySQL erwartet, etwa WordPress, Laravel oder FiveM. Benötigt Ihre Software ausdrücklich eine Funktion, die es nur in MySQL 8 gibt, wählen Sie MySQL.
Wie lautet das Root-Passwort von MariaDB?
Bei aktuellen MariaDB-Installationen unter Ubuntu und Debian wird der Benutzer root nicht per Passwort, sondern über unix_socket authentifiziert. Auf dem Server verbinden Sie sich mit dem Befehl sudo mariadb ohne Passwort. Legen Sie für Ihre Anwendungen statt root immer einen eigenen Benutzer mit Passwort an.
Wie verbinde ich mich von außen mit der Datenbank?
Der sicherste Weg ist ein SSH-Tunnel; damit verbinden Sie sich mit Tools wie HeidiSQL, DBeaver oder MySQL Workbench, ohne den Datenbankport ins Internet zu öffnen. Brauchen Sie eine direkte Verbindung, ändern Sie die Listen-Adresse von MariaDB und öffnen Sie Port 3306 nur für Ihre eigene IP-Adresse.
Wie viel RAM braucht eine Datenbank?
Die Datenbank einer kleinen Website oder eines Gameservers kommt mit einigen hundert MB aus. Die Leistung bestimmt vor allem der InnoDB Buffer Pool; liegen häufig genutzte Daten im Arbeitsspeicher, laufen Abfragen schneller. Auf einem Server, auf dem nur die Datenbank läuft, ist etwas mehr als die Hälfte des RAM für den Buffer Pool ein guter Start.
Soll ich phpMyAdmin installieren?
Das können Sie, aber eine öffentlich erreichbare phpMyAdmin-Seite ist ein häufiges Angriffsziel. Wenn Sie es installieren, beschränken Sie den Zugriff auf Ihre eigene IP-Adresse und nutzen Sie einen zusätzlichen Passwortschutz. Desktop-Tools über einen SSH-Tunnel sind in den meisten Fällen sicherer und praktischer.
Wodurch entsteht der Fehler Too many connections?
Ihre Anwendung öffnet gleichzeitig mehr Verbindungen, als MariaDB zulässt. Meist liegt die Ursache in einer Anwendung, die Verbindungen nicht schließt, oder in der Einstellung des Connection Pools. Die eigentliche Lösung ist, die Anwendung zu korrigieren; bei Bedarf können Sie den Wert max_connections in vernünftigem Maß erhöhen.
Über den Autor
Nodesty-Team · Infrastruktur und Support
Das Nodesty-Team betreibt unsere Server, unser Netzwerk und unseren DDoS-Schutz im Alltag und beantwortet Support-Anfragen rund um die Uhr. Diese Ratgeber entstehen aus dieser Arbeit.
Verwandte Artikel

Ubuntu Upgrade: Server auf die neue LTS-Version bringen
Ubuntu Server auf die neue LTS-Version upgraden: Backup, Vorbereitung, do-release-upgrade, SSH-Verbindung, Kontrollen danach und Neuinstallation erklärt.

Was ist ein Load Balancer? So funktioniert Lastverteilung
Was ist ein Load Balancer und wofür? Methoden der Lastverteilung, Health Checks, Sessions, Load Balancing mit Nginx, HAProxy und wann Sie einen brauchen.

Laravel deployen: Anwendung auf dem vServer veröffentlichen
Laravel deployen auf dem Server: PHP-FPM, Composer, .env, Datenbank, Dateirechte, Nginx, Queue Worker, Scheduler, SSL und Updates Schritt für Schritt.