MariaDB installieren
MariaDB ist ein Datenbankserver und wird häufig für Webseiten, Anwendungen, Webpanels, Shopsysteme, Foren, Bots und eigene Projekte verwendet.
In diesem Artikel erklären wir dir, wie du MariaDB auf einem Linux KVM-Server installierst, absicherst und eine erste Datenbank mit Benutzer anlegst.
Was ist MariaDB?
MariaDB ist ein relationaler Datenbankserver.
Eine Datenbank speichert strukturierte Daten. Anwendungen nutzen Datenbanken zum Beispiel für:
Benutzerkonten
Einstellungen
Beiträge
Produkte
Bestellungen
Logdaten
Spielerdaten
Sitzungen
Konfigurationen
MariaDB ist mit vielen Anwendungen kompatibel, die auch MySQL unterstützen.
Voraussetzungen
Du benötigst:
einen KVM-Server mit Linux
Root-Zugriff oder einen Benutzer mit sudo-Rechten
eine SSH-Verbindung zum Server
grundlegende Kenntnisse im Umgang mit der Konsole
Diese Anleitung eignet sich besonders für:
Debian
Ubuntu
Bei AlmaLinux oder Rocky Linux sind einzelne Befehle anders.
Mit dem Server verbinden
Verbinde dich zuerst per SSH mit deinem Server.
Beispiel:
ssh root@SERVER-IP
Ersetze SERVER-IP durch die IP-Adresse deines KVM-Servers.
Wenn du einen eigenen SSH-Port verwendest, gib den Port zusätzlich an.
Beispiel:
ssh root@SERVER-IP -p 2222
Paketlisten aktualisieren
Aktualisiere zuerst die Paketlisten.
Befehl:
apt update
Danach solltest du vorhandene Updates installieren.
Befehl:
apt upgrade
Wenn wichtige Systemupdates installiert wurden, kann ein Neustart sinnvoll sein.
Befehl:
reboot
MariaDB installieren
Installiere MariaDB mit folgendem Befehl:
apt install mariadb-server mariadb-client
Während der Installation werden der MariaDB-Server und das passende Client-Programm installiert.
Der Serverdienst wird danach meistens automatisch gestartet.
MariaDB-Dienst prüfen
Prüfe nach der Installation, ob MariaDB läuft.
Befehl:
systemctl status mariadb
Wenn der Dienst aktiv ist, wird der Status als active oder running angezeigt.
Falls MariaDB nicht läuft, kannst du den Dienst starten.
Befehl:
systemctl start mariadb
Damit MariaDB nach einem Neustart automatisch startet, aktiviere den Dienst.
Befehl:
systemctl enable mariadb
MariaDB absichern
Nach der Installation solltest du MariaDB absichern.
Dafür gibt es ein eigenes Sicherheitsprogramm.
Befehl:
mysql_secure_installation
Das Programm stellt mehrere Fragen.
Typische Empfehlungen:
Root-Passwort setzen oder ändern
Ja, wenn noch keins gesetzt ist
Anonyme Benutzer entfernen
Ja
Root-Login aus der Ferne verbieten
Ja
Testdatenbank entfernen
Ja
Rechte-Tabellen neu laden
Ja
Je nach MariaDB-Version können die Fragen etwas anders formuliert sein.
Bei MariaDB anmelden
Nach der Installation kannst du dich lokal am Datenbankserver anmelden.
Befehl:
mariadb
oder:
mysql
Auf vielen Debian- und Ubuntu-Systemen funktioniert die Anmeldung als Root-Benutzer über das lokale Systemkonto.
Wenn ein Passwort benötigt wird, nutze:
mariadb -u root -p
Danach wirst du nach dem MariaDB-Root-Passwort gefragt.
Datenbank erstellen
Erstelle eine neue Datenbank.
Beispiel:
CREATE DATABASE webseite;
Der Name webseite ist nur ein Beispiel. Du kannst einen eigenen Namen verwenden.
Empfehlung:
nur Kleinbuchstaben verwenden
keine Leerzeichen verwenden
eindeutigen Namen nutzen
Beispiel:
CREATE DATABASE minecraft_stats;
Datenbankbenutzer erstellen
Erstelle einen eigenen Benutzer für deine Anwendung.
Beispiel:
CREATE USER 'webuser'@'localhost' IDENTIFIED BY 'sicheres_passwort';
Ersetze:
webuserdurch den gewünschten Benutzernamensicheres_passwortdurch ein starkes Passwort
Verwende nicht denselben Benutzer für alle Anwendungen.
Rechte vergeben
Damit der Benutzer auf die Datenbank zugreifen kann, musst du Rechte vergeben.
Beispiel:
GRANT ALL PRIVILEGES ON webseite.* TO 'webuser'@'localhost';
Damit darf der Benutzer webuser auf alle Tabellen der Datenbank webseite zugreifen.
Danach Rechte neu laden:
FLUSH PRIVILEGES;
MariaDB verlassen:
EXIT;
Verbindung testen
Teste, ob der neue Benutzer funktioniert.
Befehl:
mariadb -u webuser -p webseite
Gib danach das Passwort des Benutzers ein.
Wenn die Anmeldung funktioniert, ist der Benutzer korrekt eingerichtet.
MariaDB wieder verlassen:
EXIT;
Datenbank für eine Webseite verwenden
Viele Webseiten oder Anwendungen fragen bei der Installation nach Datenbankdaten.
Typische Angaben sind:
Datenbank-Host
localhost
Datenbank-Port
3306
Datenbankname
Name deiner Datenbank
Benutzername
Name deines Datenbankbenutzers
Passwort
Passwort des Datenbankbenutzers
Wenn die Anwendung auf demselben Server läuft wie MariaDB, ist der Host meistens localhost.
MariaDB von außen erreichbar machen
Standardmäßig sollte MariaDB nicht öffentlich aus dem Internet erreichbar sein.
Das ist aus Sicherheitsgründen sinnvoll.
Wenn eine Anwendung auf demselben Server läuft, brauchst du keinen externen Zugriff.
Wenn du MariaDB trotzdem von einem anderen Server aus erreichen möchtest, musst du die Konfiguration ändern und die Firewall anpassen.
Wichtig: Öffne MariaDB nicht öffentlich für das gesamte Internet, wenn es nicht notwendig ist.
Bind-Adresse prüfen
Die MariaDB-Konfiguration befindet sich je nach System an unterschiedlichen Stellen.
Häufige Datei:
/etc/mysql/mariadb.conf.d/50-server.cnf
Öffne die Datei:
nano /etc/mysql/mariadb.conf.d/50-server.cnf
Suche nach:
bind-address
Wenn MariaDB nur lokal erreichbar sein soll, sollte dort stehen:
bind-address = 127.0.0.1
Wenn MariaDB von außen erreichbar sein soll, kann die Adresse angepasst werden.
Beispiel:
bind-address = 0.0.0.0
Danach MariaDB neu starten:
systemctl restart mariadb
Wichtig: 0.0.0.0 bedeutet, dass MariaDB auf allen Netzwerkadressen lauscht. Nutze das nur, wenn du genau weißt, was du tust.
Firewall für MariaDB
Der Standardport von MariaDB ist 3306.
Wenn MariaDB nur lokal genutzt wird, muss dieser Port nicht in der Firewall geöffnet werden.
Wenn externer Zugriff nötig ist, solltest du den Zugriff nur für bestimmte IP-Adressen erlauben.
Beispiel mit UFW:
ufw allow from 123.123.123.123 to any port 3306 proto tcp
Ersetze 123.123.123.123 durch die IP-Adresse des Servers oder Systems, das auf MariaDB zugreifen darf.
Nicht empfohlen:
ufw allow 3306/tcp
Dieser Befehl öffnet MariaDB für alle erreichbaren Quellen.
Benutzer für externen Zugriff erstellen
Wenn ein Benutzer von einem anderen Server zugreifen soll, reicht 'localhost' nicht aus.
Beispiel für Zugriff von einer bestimmten IP-Adresse:
CREATE USER 'remoteuser'@'123.123.123.123' IDENTIFIED BY 'sicheres_passwort';
Rechte vergeben:
GRANT ALL PRIVILEGES ON webseite.* TO 'remoteuser'@'123.123.123.123';
Rechte neu laden:
FLUSH PRIVILEGES;
Für öffentliche Zugriffe mit % solltest du sehr vorsichtig sein.
Beispiel:
'remoteuser'@'%'
Das bedeutet, dass sich der Benutzer grundsätzlich von überall verbinden darf, sofern Firewall und MariaDB-Konfiguration es erlauben.
MariaDB neu starten
Nach Konfigurationsänderungen musst du MariaDB neu starten.
Befehl:
systemctl restart mariadb
Status prüfen:
systemctl status mariadb
MariaDB-Logs prüfen
Wenn MariaDB nicht startet oder eine Verbindung fehlschlägt, helfen die Logs.
Befehl:
journalctl -u mariadb
Für aktuelle Meldungen:
journalctl -u mariadb -f
Je nach System können zusätzliche Logs in folgenden Verzeichnissen liegen:
/var/log/mysql//var/log/mariadb/
Datenbank sichern
Erstelle regelmäßig Backups deiner Datenbanken.
Eine einzelne Datenbank sicherst du mit:
mysqldump -u root -p webseite > webseite.sql
Alle Datenbanken sicherst du mit:
mysqldump -u root -p --all-databases > alle-datenbanken.sql
Die erzeugte .sql-Datei solltest du sicher speichern und nicht öffentlich erreichbar ablegen.
Datenbank wiederherstellen
Eine Datenbank kannst du aus einer SQL-Datei wiederherstellen.
Beispiel:
mariadb -u root -p webseite < webseite.sql
Achte darauf, dass die Datenbank vorher existiert.
Falls nicht, erstelle sie vorher:
CREATE DATABASE webseite;
MariaDB deinstallieren
Wenn du MariaDB nicht mehr benötigst, kannst du es entfernen.
Befehl:
apt remove mariadb-server mariadb-client
Konfigurationsdateien und Datenbanken können dabei weiterhin vorhanden bleiben.
Wenn du MariaDB vollständig entfernen möchtest, nutze:
apt purge mariadb-server mariadb-client
Wichtig: Dabei können Konfigurationen entfernt werden. Sichere vorher wichtige Datenbanken.
Häufige Probleme
Anmeldung als root funktioniert nicht
Auf vielen Debian- und Ubuntu-Systemen nutzt MariaDB für den lokalen Root-Zugriff ein Socket-Login.
Versuche:
sudo mariadb
oder melde dich direkt als Root-Benutzer am Server an und starte:
mariadb
Wenn du ein Passwort setzen möchtest, kannst du einen eigenen Datenbankbenutzer mit Administratorrechten erstellen.
Access denied for user
Diese Meldung bedeutet, dass Benutzername, Passwort, Host oder Rechte nicht passen.
Prüfe:
richtiger Benutzername
richtiges Passwort
richtiger Host, zum Beispiel
localhostBenutzer wurde für den richtigen Host erstellt
Rechte wurden vergeben
FLUSH PRIVILEGESwurde ausgeführt
Unknown database
Die angegebene Datenbank existiert nicht oder der Name wurde falsch geschrieben.
Prüfe vorhandene Datenbanken mit:
SHOW DATABASES;
Can't connect to local server
MariaDB läuft möglicherweise nicht.
Prüfe den Dienst:
systemctl status mariadb
Starte MariaDB bei Bedarf:
systemctl start mariadb
Verbindung von außen funktioniert nicht
Prüfe:
lauscht MariaDB auf der richtigen Adresse?
ist
bind-addresskorrekt gesetzt?ist Port
3306in der Firewall erlaubt?wurde der Benutzer für die richtige Quell-IP erstellt?
blockiert eine externe Firewall die Verbindung?
läuft MariaDB überhaupt?
Port 3306 ist öffentlich offen
Wenn MariaDB nicht öffentlich erreichbar sein muss, schließe den Port.
Bei UFW:
ufw deny 3306/tcp
Prüfe danach:
ufw status
Sicherheitshinweise
MariaDB sollte nur so offen erreichbar sein wie nötig.
Empfehlungen:
keine schwachen Datenbankpasswörter verwenden
keine öffentlichen Root-Zugänge erlauben
Datenbankport nicht unnötig öffnen
eigene Benutzer pro Anwendung erstellen
Rechte nur für benötigte Datenbanken vergeben
regelmäßige Backups erstellen
MariaDB und das Betriebssystem aktuell halten
Backups nicht im öffentlichen Webverzeichnis speichern
Support kontaktieren
Wenn MariaDB nicht funktioniert und du Hilfe benötigst, kontaktiere den Support.
Gib dabei bitte folgende Informationen an:
Betriebssystem
MariaDB-Version, falls bekannt
genaue Fehlermeldung
betroffener Benutzer
ob der Zugriff lokal oder extern erfolgen soll
ob MariaDB gestartet ist
was du bereits versucht hast
Sende keine Datenbankpasswörter oder private Zugangsdaten an den Support.
Zuletzt aktualisiert