MySQL/MariaDB installieren
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.11undmariadb11.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
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.
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;
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.cnfund/etc/my.cnf.d/ -
MySQL:
/etc/my.cnfund/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
Fehlerbehebung
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.
Want to help? Learn how to contribute to Fedora Docs ›