MySQL/MariaDB installieren

Alessio, Héctor Louzao, Ankur Sinha, Michal Schorm Version F43 Last review: 2026-03-25
MySQL ist ein weit verbreitetes relationales Datenbankmanagementsystem (RDBMS). MariaDB ist ein von der Community entwickelter Fork von MySQL und stellt in Fedora die bevorzugte MySQL-Implementierung dar. Obwohl beide Produkte gemeinsame Ursprünge haben, haben sie sich im Laufe der Zeit auseinanderentwickelt, weshalb die Migration von Daten zwischen ihnen nicht trivial sein kann.

MariaDB ist unter den Bedingungen der GPLv2 lizenziert. MySQL bietet zwei Lizenzoptionen: GPLv2 für die Community Edition und eine proprietäre Lizenz für Enterprise.

Fedora liefert versionierte Pakete für beides:

  • MariaDB LTS-Versionen, z.B. mariadb10.11 und mariadb11.8

  • MySQL-Veröffentlichungen mit Langzeitsupport, zum Beispiel mysql8.4

In jeder Fedora-Veröffentlichung wird jeweils eine Version als „Distributionsstandard“ festgelegt, die unversionierte Paketnamen bereitstellt (mariadb, mariadb-server oder mysql, mysql-server).

So können Sie anzeigen lassen, welche Versionen in Ihrer Fedora-Veröffentlichung verfügbar sind:

$ dnf search mariadb | grep server
$ dnf search mysql | grep server
Die verfügbaren Versionen können sich zwischen den Fedora-Veröffentlichungen unterscheiden. Die Pakete für MariaDB und MySQL stehen miteinander in Konflikt, da sie ähnliche Dateien bereitstellen – Sie können jeweils nur eines der beiden installieren.

Installation aus den Fedora-Paketquellen

MariaDB installieren

So installieren Sie die Standardversion der Distribution:

$ sudo dnf install mariadb-server

So installieren Sie eine spezifische Version:

$ sudo dnf install mariadb11.8-server

MySQL installieren

So installieren Sie die Standardversion der Distribution:

$ sudo dnf install mysql-server

So installieren Sie eine spezifische Version:

sudo dnf install mysql8.4-server

Starten des Dienstes

Für MariaDB:

$ sudo systemctl enable --now mariadb

Für MySQL:

$ sudo systemctl enable --now mysqld

Verbinden

Bei MariaDB verbindet sich der Root-Benutzer über die Unix-Socket-Authentifizierung ohne Passwort:

$ mysql -u root

Für MySQL müssen Sie sich möglicherweise mit einem Passwort verbinden:

$ mysql -u root -p

Entfernen

$ sudo dnf remove mariadb-server

oder:

$ sudo dnf remove mysql-server

Aus der MySQL-Paketquelle von Oracle installieren

Diese Seite behandelt Softwarequellen von Drittanbietern, die nicht offiziell mit dem Fedora-Projekt verbunden sind oder von diesem unterstützt werden. Die Nutzung erfolgt auf eigene Verantwortung. Fedora empfiehlt die Verwendung freier und quelloffener Software und rät von patentgeschützter Software ab.

Oracle stellt eine eigene MySQL-Paketquelle für Fedora bereit. Dies ist nützlich, wenn Sie eine Version benötigen, die in den Fedora-Paketquellen nicht verfügbar ist.

Die MySQL-Paketquelle von Oracle zu Fedora hinzufügen

Laden Sie das Release-Paket von https://dev.mysql.com/downloads/repo/yum/ herunter und installieren Sie es:

$ sudo dnf install <Pfad_zum_heruntergeladenen_rpm>
Diese Paketquelle wird von Oracle betreut. Melden Sie Fehler auf https://www.mysql.com/about/faq/

MySQL installieren und starten

$ sudo dnf install mysql-community-server
$ sudo systemctl enable --now mysqld

MySQL erzeugt beim ersten Start ein temporäres Root-Passwort. So finden Sie es heraus:

$ sudo grep 'temporary password' /var/log/mysqld.log

Dann sichern Sie die Installation ab:

$ sudo mysql_secure_installation

Beantworten Sie die Sicherheitsfragen nach Belieben. Verwenden Sie ein starkes Passwort für den MySQL-Root-Benutzer – dieses ist vom Root-Passwort Ihres Systems getrennt.

Verbinden

$ mysql -u root -p

Oracle MySQL entfernen

$ sudo dnf remove mysql-community-server mysql-community-libs mysql-community-common

Mit Containern installieren

Fedora stellt Container-Abbilder auf quay.io bereit.

MariaDB-Container

$ podman pull quay.io/fedora/mariadb-118
$ podman run -d --name mariadb -e MYSQL_ROOT_PASSWORD=meinpasswort quay.io/fedora/mariadb-118

MySQL-Container

$ podman pull quay.io/fedora/mysql-84
$ podman run -d --name mysql -e MYSQL_ROOT_PASSWORD=meinpasswort quay.io/fedora/mysql-84

Aus dem Container heraus zur Datenbank verbinden

$ podman exec -it mariadb mysql -uroot -p

oder für MySQL:

$ podman exec -it mysql mysql -uroot -p

Container verwalten

$ podman start <Containername>
$ podman stop <Containername>
$ podman restart <Containername>
$ podman rm <Containername>

Verfügbare Abbilder finden Sie auf https://quay.io/organization/fedora

Die Datenbank verwenden

Verbindung zur Datenbank-Shell:

$ mysql -u root -p
Bei einer aus den Fedora-Paketquellen installierten MariaDB verbindet sich der Root-Benutzer mittels Unix-Socket-Authentifizierung ohne Passwort: mysql -u root

Fragen Sie die laufende Version ab:

SELECT version();

Eine Datenbank und einen Benutzer anlegen:

CREATE DATABASE mydb;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;

Die verfügbaren Datenbanken auflisten:

SHOW DATABASES;

Dateispeicherorte

Die Datenbankdateien werden in befindet sich unter /var/lib/mysql gespeichert.

Fernzugriff gewähren

Den Firewall-Port öffnen

$ sudo firewall-cmd --permanent --zone=public --add-service=mysql
$ sudo firewall-cmd --reload

oder direkt mit der Portnummer:

$ sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
$ sudo firewall-cmd --reload

Bind-Adresse konfigurieren

Bearbeiten Sie die Konfiguration, um Verbindungen von anderen Hosts zuzulassen.

Orte der Konfigurationsdateien:

  • MariaDB: /etc/my.cnf und /etc/my.cnf.d/

  • MySQL: /etc/my.cnf und /etc/my.cnf.d/

Sie können die Konfigurationsdateien für jedes Paket mit rpm -qc <Paketname> finden.

Setzen Sie die Bind-Adresse so, dass Verbindungen von allen Schnittstellen akzeptiert werden:

[mysqld]
bind-address = 0.0.0.0

Dann starten Sie den Dienst neu:

$ sudo systemctl restart mariadb

oder für MySQL:

$ sudo systemctl restart mysqld

Einen fernen Benutzer anlegen

CREATE USER 'myuser'@'%' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%';
FLUSH PRIVILEGES;
Ersetzen Sie % durch eine spezifische IP-Adresse oder Subnetz (beispielsweise 192.168.1.%), um den Zugriff auf bestimmte Hosts zu beschränken.

Verbindung aus der Ferne

$ mysql -u myuser -h <Server-IP> -p

Fehlerbehebung

Die installierte Version ermitteln

$ dnf list installed | grep -i -e maria -e mysql

Die aktive Konfiguration überprüfen

Für MariaDB:

$ mariadbd --print-defaults

Für MySQL:

$ mysqld --print-defaults

Fehlerprotokolle

Falls der Start des Dienstes fehlschlägt, schauen Sie in das Journal:

$ journalctl -xe -u mariadb

oder für MySQL:

$ journalctl -xe -u mysqld

Protokolldateien finden Sie auch hier:

  • MariaDB: /var/log/mariadb/mariadb.log

  • MySQL: /var/log/mysql/mysqld.log

Socket-Fehler

Sie könnten folgenden Fehler angezeigt bekommen:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Dies bedeutet üblicherweise, dass der Dienst nicht läuft. Versuchen Sie ihn zu starten:

$ sudo systemctl start mariadb

Wenn der Dienst läuft, die Socket-Datei aber fehlt, überprüfen Sie den konfigurierten Socket-Pfad:

$ mysql --help | grep socket

Prüfen Sie, ob die Socket-Datei existiert:

$ ls -la /var/lib/mysql/mysql.sock

Falls die Datei nicht existiert, stellen Sie sicher, dass das Datenverzeichnis die korrekten Besitzverhältnisse und Berechtigungen hat:

$ sudo chown mysql:mysql /var/lib/mysql
$ sudo chmod 755 /var/lib/mysql

Dann starten Sie den Dienst neu:

$ sudo systemctl restart mariadb

Falls das Problem weiterhin besteht, schauen Sie für weitere Details in die Fehlerprotokolle.