So installieren Sie MariaDB auf Ubuntu (20.04 / 22.04 / 24.04) – Vollständige Einrichtung & Sicherheits‑Leitfaden

目次

Schnellste Methode, MariaDB auf Ubuntu zu installieren (20.04 / 22.04 / 24.04 unterstützt)

Wenn Sie MariaDB auf Ubuntu sofort nutzen möchten, folgen Sie einfach den nachstehenden Schritten, um die Installation abzuschließen und den Start zu überprüfen. Sofern Sie keinen besonderen Grund haben, ist die Installation aus dem Ubuntu‑Standard‑Repository die sicherste und stabilste Option.

① Paketinformationen aktualisieren

sudo apt update
sudo apt upgrade -y

② MariaDB installieren

sudo apt install -y mariadb-server mariadb-client

Keine spezielle Konfiguration ist während der Installation erforderlich. Nach Abschluss wird der MariaDB‑Dienst automatisch gestartet.

③ Überprüfen, ob MariaDB läuft

sudo systemctl status mariadb

Wenn active (running) angezeigt wird, läuft MariaDB ordnungsgemäß.

④ Autostart aktivieren (normalerweise nicht nötig, aber zur Bestätigung empfohlen)

sudo systemctl enable mariadb

⑤ Mit MariaDB verbinden und Betrieb prüfen

sudo mysql

Wenn Sie die folgende Eingabeaufforderung sehen, war die Installation erfolgreich:

MariaDB [(none)]>

Zum Beenden tippen Sie exit;.

Obligatorische Sicherheitsinitialisierung nach der Installation

Unmittelbar nach der Installation hat MariaDB nur minimale Sicherheitseinstellungen. Führen Sie unbedingt den folgenden Befehl aus:

sudo mysql_secure_installation

Im Allgemeinen werden die folgenden Antworten empfohlen:

  • Anonyme Benutzer entfernen → Y
  • Remote‑Login für root verbieten → Y
  • Testdatenbank entfernen → Y
  • Privilegientabellen neu laden → Y

Damit ist die Einrichtung einer sicheren MariaDB‑Umgebung auf Ubuntu abgeschlossen.

MariaDB‑Version, die von der Ubuntu‑Version bereitgestellt wird

  • Ubuntu 20.04 → MariaDB‑Serie 10.3
  • Ubuntu 22.04 → MariaDB‑Serie 10.6
  • Ubuntu 24.04 → MariaDB‑Serie 10.11 (LTS)

Für die meisten Benutzer ist die Ubuntu‑Standardversion ausreichend. Ziehen Sie das offizielle Repository nur in Betracht, wenn Sie die neuesten Funktionen benötigen.

Schnell‑Checks, falls die Installation fehlschlägt oder der Dienst nicht startet

  • Fehler prüfen mit sudo systemctl status mariadb
  • Detaillierte Logs prüfen mit sudo journalctl -xe
  • Festplattenspeicher prüfen mit df -h

In den meisten Fällen liegt das Problem entweder an zu wenig Festplattenspeicher oder an einem Tippfehler in einer Konfigurationsdatei.

Die richtige MariaDB‑Version für Ihre Ubuntu‑Version wählen

Bei der Nutzung von MariaDB auf Ubuntu ist in den meisten Fällen die Version aus dem Standard‑Repository die sicherste Wahl. Sicherheitsupdates und Abhängigkeits‑Kompatibilität werden automatisch gepflegt, was sie ideal für Einsteiger und fortgeschrittene Nutzer macht.

Ubuntu‑Standard‑Repository‑Version (empfohlen)

  • Ubuntu 20.04 → MariaDB‑Serie 10.3
  • Ubuntu 22.04 → MariaDB‑Serie 10.6
  • Ubuntu 24.04 → MariaDB‑Serie 10.11 (LTS)

Sofern Sie keinen konkreten Bedarf haben, sind diese Versionen voll praktisch für den Produktionseinsatz.

Wenn Sie die neueste Version benötigen (offizielles MariaDB‑Repository hinzufügen)

Falls Sie die neuesten Features benötigen, können Sie das offizielle MariaDB‑Repository hinzufügen. Da apt‑key veraltet ist, wird hier die „signed‑by“-Methode verwendet.

① GPG‑Schlüssel speichern

sudo mkdir -p /etc/apt/keyrings
sudo curl -fsSL https://mariadb.org/mariadb_release_signing_key.asc \
  | sudo gpg --dearmor -o /etc/apt/keyrings/mariadb.gpg

② Ihren Ubuntu‑Codename prüfen

lsb_release -cs

Beispiele:

  • 20.04 → focal
  • 22.04 → jammy
  • 24.04 → noble

③ Offizielles Repository hinzufügen (Beispiel: Serie 10.11)

echo "deb [signed-by=/etc/apt/keyrings/mariadb.gpg] \
https://mirror.mariadb.org/repo/10.11/ubuntu \
$(lsb_release -cs) main" \
| sudo tee /etc/apt/sources.list.d/mariadb.list

④ Pakete aktualisieren und installieren

sudo apt update
sudo apt install mariadb-server mariadb-client

Hinweise bei Verwendung des offiziellen Repositories

  • Sie können neuere Features nutzen als mit der Ubuntu‑Standardversion
  • Es besteht ein zukünftiges Risiko von Abhängigkeitskonflikten
  • Für Produktionsserver ist gründliches Testen erforderlich

Für den Produktionseinsatz sollten Sie klar entscheiden, ob Sie Stabilität oder die neuesten Features priorisieren.

Wie man die aktuell installierte MariaDB-Version überprüft

mysql --version

Beispiel:

mysql  Ver 15.1 Distrib 10.6.16-MariaDB

Durch die explizite Bestätigung der Version werden Fehlersuche und Migrationsarbeiten deutlich einfacher.

Vollständige Anleitung zur ersten MariaDB-Sicherheitskonfiguration (mysql_secure_installation)

Direkt nach der Installation von MariaDB werden nur minimale Sicherheitseinstellungen vorgenommen. Um sicher zu arbeiten, führen Sie unbedingt den folgenden Befehl aus:

sudo mysql_secure_installation

Bei der Ausführung erscheinen mehrere Eingabeaufforderungen. In den meisten Fällen werden die folgenden Antworten empfohlen.

Empfohlene Antworten

  • Enter current password for root: → Drücken Sie die Eingabetaste (bei der ersten Ausführung nicht gesetzt)
  • Switch to unix_socket authentication? → Y (Empfohlen unter Ubuntu)
  • Change the root password? → N (Wenn unix_socket-Authentifizierung verwendet wird)
  • Remove anonymous users? → Y
  • Disallow root login remotely? → Y
  • Remove test database and access to it? → Y
  • Reload privilege tables now? → Y

Damit ist die grundlegende Sicherheitskonfiguration abgeschlossen.

Warum Sie sich nicht als root anmelden können (Zugriff verweigert-Fehler)

Unter Ubuntu verwendet der root-Benutzer standardmäßig unix_socket-Authentifizierung. Daher funktioniert die herkömmliche passwortbasierte Anmeldung nicht.

Beispielsymptom

mysql -u root -p

Access denied for user 'root'@'localhost'

Korrekte Anmeldemethode (Ubuntu-Standard)

sudo mysql

Dies ist die sicherste und empfohlene Methode.

Wie man root auf Passwortauthentifizierung umstellt (nur falls nötig)

Ändern Sie die Authentifizierungsmethode nur, wenn Sie sich als root von externen Tools oder Anwendungen verbinden müssen.

① Verbindung zu MariaDB herstellen

sudo mysql

② Authentifizierungs-Plugin ändern

ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'StrongPasswordHere';

FLUSH PRIVILEGES;

③ Änderung bestätigen

SELECT user, host, plugin FROM mysql.user;

Wenn mysql_native_password angezeigt wird, war die Änderung erfolgreich.

Wie man die aktuelle Authentifizierungsmethode überprüft

sudo mysql -e "SELECT user, host, plugin FROM mysql.user;"

Hauptauthentifizierungsmethoden:

  • unix_socket → Ubuntu-Standard, sicher
  • mysql_native_password → Passwortbasierte Authentifizierung

Sofern kein spezieller Grund vorliegt, ist es am sichersten, root die unix_socket-Authentifizierung beizubehalten.

Häufige Fehler und Lösungen

FEHLER 1698 (28000): Zugriff verweigert für Benutzer ‚root’@’localhost‘

  • Ursache: Versuch einer passwortbasierten Anmeldung
  • Lösung: Anmeldung mit sudo mysql

mysql_secure_installation nicht gefunden

  • Überprüfen Sie mit which mysql_secure_installation
  • Wenn nicht installiert, führen Sie sudo apt install mariadb-server aus

Zeichencodierung auf utf8mb4 setzen (verhindert fehlerhafte Zeichen)

Um mehrsprachigen Text und Emojis in MariaDB sicher zu verarbeiten, wird empfohlen, utf8mb4 zu verwenden. Ohne diese Einstellung können Codierungsprobleme oder Datenverlust auftreten.

① Konfigurationsdatei bearbeiten

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Fügen Sie die folgenden Zeilen im Abschnitt [mysqld] hinzu oder ändern Sie sie:

[mysqld]
character-set-server = utf8mb4
collation-server     = utf8mb4_general_ci

② MariaDB neu starten

sudo systemctl restart mariadb

③ Einstellungen überprüfen

sudo mysql -e "SHOW VARIABLES LIKE 'character_set%';"

Wenn utf8mb4 angezeigt wird, war die Konfiguration erfolgreich.

utf8mb4 beim Erstellen einer Datenbank angeben (empfohlen)

Wenn Sie den Zeichensatz unabhängig von globalen Einstellungen explizit festlegen möchten, geben Sie ihn beim Erstellen der Datenbank an.

CREATE DATABASE sample_db
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;

Alle in dieser Datenbank erstellten Tabellen erben utf8mb4.

Einen Anwendungsbenutzer erstellen und Berechtigungen gewähren

In Produktionsumgebungen verwenden Sie niemals den root-Benutzer für Anwendungsverbindungen. Erstellen Sie einen dedizierten Benutzer und gewähren Sie nur die minimal erforderlichen Rechte.

① Bei MariaDB anmelden

sudo mysql

② Einen Benutzer erstellen (lokale Verbindung)

CREATE USER 'app_user'@'localhost'
IDENTIFIED BY 'StrongPasswordHere';

③ Datenbankberechtigungen gewähren

GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'localhost';

FLUSH PRIVILEGES;

Einen Remote‑Zugriffsbenutzer erstellen (nur falls nötig)

Konfigurieren Sie dies nur, wenn Sie sich von einem externen Server oder einer Cloud‑Umgebung aus verbinden müssen.

CREATE USER 'app_user'@'%'
IDENTIFIED BY 'StrongPasswordHere';

GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'%';

FLUSH PRIVILEGES;

Hinweis: Der Platzhalter “%” erlaubt Verbindungen von jedem Host. In Produktionsumgebungen ist die Angabe einer konkreten IP‑Adresse sicherer.

Wie man aktuelle Benutzer und Berechtigungen überprüft

SELECT user, host FROM mysql.user;

SHOW GRANTS FOR 'app_user'@'localhost';

Häufige Berechtigungsfehler und Lösungen

Zugriff verweigert für Benutzer ‚app_user‘

  • Falsche Host‑Angabe (Unterschied zwischen localhost und %)
  • FLUSH PRIVILEGES wurde nicht ausgeführt
  • Falscher Datenbankname bei der Verbindung

Unbekannte Datenbank

  • Tippfehler im Datenbanknamen
  • Keine Berechtigungen für die Ziel‑Datenbank vergeben

Wie man Remote‑Verbindungen in MariaDB erlaubt (Behebung bei fehlgeschlagener externer Verbindung)

Standardmäßig erlaubt MariaDB nur lokale Verbindungen. Wenn Sie sich von einem externen Server oder einer Cloud‑Umgebung aus verbinden müssen, konfigurieren Sie die folgenden Einstellungen.

① Bind‑Address ändern

Bearbeiten Sie die Konfigurationsdatei:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Suchen Sie die folgende Zeile:

bind-address = 127.0.0.1

Um externe Verbindungen zu erlauben, ändern Sie sie zu:

bind-address = 0.0.0.0

Nach dem Speichern MariaDB neu starten:

sudo systemctl restart mariadb

② Port 3306 in der Firewall öffnen

Wenn Sie UFW auf Ubuntu verwenden:

sudo ufw allow 3306
sudo ufw reload

Für verbesserte Sicherheit geben Sie die Quell‑IP‑Adresse an:

sudo ufw allow from 192.168.1.10 to any port 3306

③ Einen Remote‑Zugriffsbenutzer erstellen

CREATE USER 'app_user'@'%'
IDENTIFIED BY 'StrongPasswordHere';

GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'%';

FLUSH PRIVILEGES;

Für bessere Sicherheit:

CREATE USER 'app_user'@'192.168.1.10'
IDENTIFIED BY 'StrongPasswordHere';

Checkliste, wenn Sie nicht extern verbinden können

1. Läuft MariaDB?

sudo systemctl status mariadb

2. Hört Port 3306?

sudo ss -tulnp | grep 3306

Wenn es 0.0.0.0:3306 anzeigt, hört es korrekt auf allen Schnittstellen.

3. Wenn Sie eine Cloud‑Umgebung verwenden (AWS / GCP / VPS)

  • Stellen Sie sicher, dass Port 3306 in der Sicherheitsgruppe geöffnet ist
  • Bestätigen Sie, dass keine externe Firewall die Verbindung blockiert

4. Ursachen nach Fehlermeldung

Kann keine Verbindung zum MySQL‑Server herstellen

  • Port ist geschlossen
  • Bind‑Address nicht geändert
  • Firewall blockiert die Verbindung

Zugriff verweigert für Benutzer

  • Falsche Host‑Angabe des Benutzers
  • Falsches Passwort
  • Berechtigungen nicht vergeben

Verbindung zeitüberschreitung

  • Sicherheitseinstellungen auf Cloud‑Seite
  • Netzwerk‑Routing‑Probleme

Wichtige Sicherheitshinweise

  • Vermeiden Sie die Verwendung von “%” in Produktionsumgebungen
  • Verwenden Sie nach Möglichkeit VPN‑Zugriff
  • Erwägen Sie die Aktivierung von SSL/TLS‑Verbindungen
  • Erlauben Sie niemals Remote‑Root‑Login

Fehlerbehebung, wenn MariaDB nicht startet (Fehler beim Starten)

① Dienststatus prüfen

sudo systemctl status mariadb

② Detaillierte Protokolle prüfen

sudo journalctl -xe
sudo cat /var/log/mysql/error.log

③ Häufige Ursachen

  • Syntaxfehler in der Konfigurationsdatei
  • Unzureichender Speicherplatz
  • Portkonflikt (MySQL läuft bereits)

④ Speicherplatz prüfen

df -h

Zusammenfassung der Ursachen für Zugriff verweigert‑Fehler

  • Falsches Passwort
  • Falsche Host‑Angabe (Unterschied zwischen localhost und %)
  • FLUSH PRIVILEGES nicht ausgeführt
  • Versuch, sich standardmäßig als root anzumelden (erfordert sudo mysql )

Grundlegende Leistungsverbesserungen (für Anfänger)

Advanced tuning is not required, but at minimum, confirm the following settings.

① Enable Slow Query Log

Add the following to 50-server.cnf:

slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2

Restart MariaDB:

sudo systemctl restart mariadb

② Check Index Usage

Slow queries may be missing proper indexes.

EXPLAIN SELECT * FROM sample_table WHERE column_name = 'value';

③ Check Server Resources

top
htop

If memory is insufficient, consider upgrading your server plan.

Frequently Asked Questions (FAQ)

How can I lock the MariaDB version on Ubuntu 22.04?

Use apt-mark hold mariadb-server.

How do I reset the root password if I forgot it?

You can reset it by starting in safe mode and reconfiguring the password. See our dedicated guide for detailed steps.

How do I change the MariaDB port number?

Modify 50-server.cnf to something like port = 3307, then restart the service.

Conclusion: Using MariaDB Safely on Ubuntu

  • Using the default repository version is the safest option
  • Always run mysql_secure_installation
  • Never use root for application connections
  • Enable remote access only when necessary
  • When troubleshooting, checking logs is the top priority

By following these steps, you can build a secure and production-ready MariaDB environment on Ubuntu.