Wie man MariaDB auf Rocky Linux installiert
In Rocky Linux können Sie den MariaDB-Server starten, indem Sie das mariadb-server-Paket installieren und den mariadb-Dienst aktivieren. Nach der Installation entfernen Sie unnötige Standardkonten mit mariadb-secure-installation und erstellen und verwenden ein Konto mit minimalen Berechtigungen für Anwendungen anstelle von root.
Überprüfen Sie die bereitgestellten Versionen und Pakete
cat /etc/rocky-release
dnf info mariadb-server
dnf module list mariadb
Die Unterstützung für Modulbefehle und bereitgestellte Versionen variiert je nach Rocky Linux-Version und DNF-Implementierung. Wenn eine Anwendung eine spezifische Hauptversion von MariaDB benötigt, wählen Sie entweder das Standardrepository oder das offizielle MariaDB-Repository und mischen Sie keine Serverpakete aus verschiedenen Repositories.
MariaDB installieren und starten
Serverpaket installieren
sudo dnf install mariadb-server
Überprüfen Sie die Installationsresultate.
rpm -q mariadb-server
mariadb --version
Aktivieren Sie den Dienst
sudo systemctl enable --now mariadb
systemctl status mariadb
Wenn der Start fehlschlägt, überprüfen Sie die folgenden Protokolle auf die Ursache.
journalctl -u mariadb -b --no-pager
Überprüfen Sie den lokalen Administratorzugang
sudo mariadb
In letzter Zeit ist es üblich, dass MariaDB so konfiguriert wird, dass die Authentifizierung für das Root-Datenbankkonto über einen Unix-Socket erfolgt. In diesem Fall können Sie lokal mit Linux-Administrationsrechten darauf zugreifen, und es ist möglicherweise nicht erforderlich, ein separates Root-Passwort für die Datenbank zu erstellen.
Initiale Sicherheit einstellen
sudo mariadb-secure-installation
Dieses Tool legt interaktiv die Entfernung anonymer Benutzer, die Einschränkung des Remote-Root-Zugriffs, die Entfernung von Testdatenbanken und mehr fest. Seit MariaDB 10.4 kann sich die alte Anleitung und die Abfolge der Fragen aufgrund der Unix-Socket-Authentifizierung unterscheiden. Für weitere Details lesen Sie das offizielle MariaDB-Dokument für sichere Installation.
Der mysql_secure_installation-Name kann als Kompatibilitätslink bestehen bleiben, aber im neuen Dokument ist es klarer, mariadb-secure-installation zu verwenden.
Anwendungsdatenbank und Konto erstellen
Datenbank erstellen
CREATE DATABASE appdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Sortierregeln beeinflussen Such- und Sortierergebnisse sowie das Verhalten von Indizes. Überprüfen Sie die Anforderungen Ihrer Anwendung und die Supportliste der von Ihnen verwendeten MariaDB-Version.
Lokalen Benutzer erstellen
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'replace-with-a-strong-secret';
GRANT SELECT, INSERT, UPDATE, DELETE ON appdb.* TO 'appuser'@'localhost';
Verwenden Sie nicht das Beispielpasswort, wie es ist. Gewähren Sie nur die von der Anwendung erforderlichen Berechtigungen und vermeiden Sie GRANT ALL ON *.* sowie den Remote-Root-Zugriff.
Berechtigungen überprüfen
SHOW GRANTS FOR 'appuser'@'localhost';
In den aktuellen Versionen von MariaDB treten Konto- und Berechtigungsänderungen sofort in Kraft, sodass es nicht notwendig ist, immer FLUSH PRIVILEGES nach den üblichen CREATE USER und GRANT auszuführen. Ändern Sie die Berechtigungstabellen nicht direkt.
Erlauben Sie Remote-Zugriff selektiv
Aktuelle Empfangseinstellungen überprüfen
sudo mariadbd --print-defaults
ss -lntp | grep 3306
Der Speicherort der Konfigurationsdateien und die Reihenfolge der Anwendung können je nach Paket variieren. Überprüfen Sie die Include-Beziehung von /etc/my.cnf und /etc/my.cnf.d/ und sichern Sie vorhandene Dateien.
Nur Verbindungen von bestimmten Serveradressen akzeptieren
Überprüfen Sie die Konfiguration, die eine tatsächliche private IP im Abschnitt [mysqld] angibt.
[mysqld]
bind-address = 192.0.2.20
0.0.0.0 hört auf allen IPv4-Schnittstellen, daher sollten Sie es auf eine bestimmte Adresse beschränken, es sei denn, es ist absolut notwendig. Für Remote-Verbindungseinstellungen können Sie sich auf den offiziellen MariaDB-Leitfaden für Remote-Verbindungen beziehen.
Nur Remote-Benutzer und Firewall-Einschränkungen
CREATE USER 'appuser'@'192.0.2.10' IDENTIFIED BY 'replace-with-a-strong-secret';
GRANT SELECT, INSERT, UPDATE, DELETE ON appdb.* TO 'appuser'@'192.0.2.10';
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.0.2.10/32" port port="3306" protocol="tcp" accept'
sudo firewall-cmd --runtime-to-permanent
Ersetzen Sie die Dokumentationsadresse durch die tatsächliche Anwendungsserveradresse. Vermeiden Sie Kombinationen, bei denen der Benutzerhost % ist und der Port für das gesamte Internet offen ist.
Einstellungen anwenden und die Verbindung testen
sudo systemctl restart mariadb
sudo systemctl status mariadb
ss -lntp | grep 3306
Vom Client aus verbinden.
mariadb --host=192.0.2.20 --user=appuser --password appdb
Wenn Sie keinen Wert direkt nach --password anhängen, können Sie ihn interaktiv eingeben. Die Angabe des Passworts in der Befehlszeile kann dieses in der Shell-Historie und Prozesslisten sichtbar machen.
Wenn Sie ein unzuverlässiges Netzwerk durchqueren, konfigurieren Sie TLS-Zertifikate und lassen Sie den Client das Serverzertifikat überprüfen.
Überprüfungen vor Updates und Backups
- Sichern Sie regelmäßig Daten und Konfigurationsdateien und testen Sie die Wiederherstellung auf einem anderen System.
- Überprüfen Sie vor der Änderung der Hauptversion die Release-Notes, entfernte Funktionen und die Kompatibilität von Zeichensatz und Kollation.
- Nach einem Paket-Update überprüfen Sie die Dokumentation der installierten Version, um festzustellen, ob
mariadb-upgradebei Bedarf ausgeführt werden muss. - Überwachen Sie die Festplattennutzung, Verbindungen, langsame Abfragen, Replikationsstatus und Fehlermeldungsprotokolle.
- Schützen Sie Anwendungsanmeldedaten mit Berechtigungen für Konfigurationsdateien oder einem Geheimnisverwaltungs-System.
Häufig gestellte Fragen
sudo mariadb funktioniert, aber mariadb -u root -p schlägt fehl.
Dies kann daran liegen, dass das Root-Konto die Unix-Socket-Authentifizierung verwendet. Überprüfen Sie das aktuelle Authentifizierungs-Plugin und behalten Sie, sofern kein spezifischer Grund vorliegt, die lokale Administratorzugriffsmethode bei.
Externer Zugriff funktioniert nicht
Überprüfen Sie bind-address, den Hostwert des Remote-Benutzerkontos, den Empfangsstatus von Port 3306, firewalld und Cloud-Sicherheitsgruppen der Reihe nach.
Ist es in Ordnung, Port 3306 für das gesamte Internet zu öffnen?
Es wird nicht empfohlen. Beschränken Sie ihn auf die feste Adresse des Anwendungsservers oder das private Netzwerk und verwenden Sie gleichzeitig VPN, TLS und Konten mit minimalen Berechtigungen.
Kann ich mysql_secure_installation verwenden?
Es kann als Kompatibilitätsname bereitgestellt werden, aber der aktuelle Name in der MariaDB-Dokumentation ist mariadb-secure-installation. Überprüfen Sie das installierte ausführbare Programm und die Versionsdokumentation.
Zusammenfassung
Installieren Sie mariadb-server, aktivieren Sie den Dienst und führen Sie dann das anfängliche Sicherheitstool aus. Verwenden Sie eine separate Datenbank und ein Konto mit minimalen Rechten für die Anwendung.
Wenn ein Fernzugriff erforderlich ist, binden Sie den Listener nur an die vorgesehenen privaten Serveradressen, beschränken Sie das Konto-Host- und Firewall-Quelladressen und bereiten Sie TLS- sowie Backup-/Wiederherstellungsverfahren vor.




