Einrichten eines sicheren Datenbankservers unter Ubuntu ist eine entscheidende Grundlage für die Erstellung skalierbarer und zuverlässiger Anwendungen. Ob Sie dynamische Webanwendungen bereitstellen oder komplexe Unternehmens-Workloads verwalten – die Wahl der richtigen Datenbanklösung ist unerlässlich. MySQL und MariaDB sind zwei der beliebtesten Open-Source-Datenbanksysteme, die für ihre Leistung, Flexibilität und Zuverlässigkeit bekannt sind.
In dieser Anleitung führen wir Sie Schritt für Schritt durch die Installation, Konfiguration und Absicherung von MySQL und MariaDB auf einem Ubuntu-Server. Außerdem vergleichen wir ihre Funktionen, damit Sie die beste Option für Ihren spezifischen Anwendungsfall bestimmen können. Mit diesem schrittweisen Ansatz sind Sie in der Lage, eine sichere und robuste Datenbankumgebung für Ihre Anwendungen einzurichten.
Frühere Artikel:
01. Einführung in Ubuntu Server – SysOSX: AI & Cloud
02. So richten Sie Ihren ersten Ubuntu-Server ein: Ein Leitfaden für Anfänger – SysOSX: AI & Cloud
03. Die Linux-Befehlszeile für Ubuntu Server beherrschen – SysOSX: AI & Cloud
05. Netzwerkgrundlagen für Ubuntu Server: Ein umfassender Leitfaden – SysOSX: AI & Cloud
07.Patchen und Aktualisieren von Ubuntu Server: Ein umfassender Leitfaden – SysOSX: AI & Cloud
09. Auditing und Logging auf dem Ubuntu-Server
10. Tools zur Systemüberwachung für Ubuntu Server: Ein umfassender Leitfaden – SysOSX: AI & Cloud
12. Audit und Compliance für Ubuntu Server: Bewährte Verfahren – SysOSX: AI & Cloud
14. Mehrere Websites auf einem einzigen Ubuntu-Server hosten: Nützliche Tipps – SysOSX: AI & Cloud
15. Speicher und Festplatten auf Ubuntu Server verwalten: Einfacher Leitfaden – SysOSX: AI & Cloud
Voraussetzungen
Stellen Sie vor dem Start sicher, dass Folgendes gegeben ist:
- Ubuntu Server: Eine laufende Ubuntu-Instanz (20.04 oder höher wird empfohlen).
- Administratorzugriff: Sie benötigen
sudo-Berechtigungen, um den Datenbankserver zu installieren und zu konfigurieren. - Internetverbindung: Erforderlich zum Herunterladen von Paketen und Updates.
MySQL vs. MariaDB: Hauptunterschiede
Obwohl MySQL und MariaDB dieselben Wurzeln haben, haben sie sich in den letzten Jahren auseinanderentwickelt und bieten unterschiedliche Funktionen. Dieser Vergleich hilft Ihnen, den richtigen Datenbankserver für Ihre Anforderungen zu wählen:
| Funktion | MySQL | MariaDB |
|---|---|---|
| Lizenz | Doppellizenz (GPL und proprietär) | Open Source (GPL) |
| Leistung | Optimiert für leseintensive Workloads | Verbesserte Leistung sowohl für Lese- als auch für Schreib-Workloads |
| Standard-Speicher-Engine | InnoDB | Aria (Alternative zu InnoDB) |
| Funktionen | Enterprise-Funktionen in kostenpflichtigen Versionen verfügbar | Viele Funktionen (z. B. Thread-Pool, JSON-Funktionen) sind Open Source |
| Kompatibilität | Weit verbreitet und von den wichtigsten Plattformen unterstützt | Kompatibel mit MySQL, unterstützt jedoch möglicherweise einige proprietäre MySQL-Funktionen nicht |
| Replikation | Herkömmliche Replikation | Verbesserte Replikation mit Galera-Cluster-Unterstützung |
| Community-Support | Große Community und Enterprise-Support-Optionen | Starker Open-Source-Community-Support |
Empfehlung:
- Wählen Sie MySQL, wenn Sie Enterprise-Funktionen und Kompatibilität mit proprietären Tools benötigen.
- Entscheiden Sie sich für MariaDB, wenn Sie Open-Source-Software mit erweiterten Funktionen und besserer Leistung bevorzugen.
MySQL oder MariaDB installieren
Schritt 1: Paket-Repository aktualisieren
Aktualisieren Sie Ihr System, um sicherzustellen, dass Sie mit den neuesten Paketversionen arbeiten:
sudo apt update && sudo apt upgrade
Schritt 2: MySQL oder MariaDB installieren
Sie können je nach Ihren Vorlieben entweder MySQL oder MariaDB installieren.
MySQL installieren:
sudo apt install mysql-server
MariaDB installieren:
sudo apt install mariadb-server
Schritt 3: Installation überprüfen
Stellen Sie nach der Installation sicher, dass der Datenbankserver läuft:
Für MySQL:
sudo systemctl status mysql
Für MariaDB:
sudo systemctl status mariadb
Konfigurieren des Datenbankservers
Schritt 1: Grundkonfiguration
Bearbeiten Sie die Konfigurationsdatei, um Leistung und Sicherheit zu optimieren.
Für MySQL:
sudo nano /etc/mysql/my.cnf
Für MariaDB:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Wichtige Einstellungen, die angepasst werden müssen:
bind-address: Setzen Sie diesen Wert auf0.0.0.0, wenn Sie Fernzugriff wünschen.max_connections: Erhöhen Sie diesen Wert für Anwendungen mit hohem Datenverkehr.
Starten Sie den Dienst nach dem Vornehmen von Änderungen neu:
sudo systemctl restart mysql # For MySQL
sudo systemctl restart mariadb # For MariaDB
Schritt 2: Datenbankserver testen
Melden Sie sich am Datenbankserver an, um sicherzustellen, dass er funktioniert:
mysql -u root -p
Sichern Ihres Datenbankservers
Schritt 1: Sicherheitsskript ausführen
Verwenden Sie das integrierte Sicherheitsskript, um Ihren Datenbankserver zu härten.
sudo mysql_secure_installation
Folgen Sie den Eingabeaufforderungen, um:
- Ein sicheres Root-Passwort festlegen.
- Anonyme Benutzer entfernen.
- Remote-Root-Anmeldung deaktivieren.
- Testdatenbanken entfernen.
Schritt 2: Firewall-Regeln konfigurieren
Beschränken Sie den Zugriff auf den Datenbankserver mit ufw:
sudo ufw allow from <your-ip-address> to any port 3306
Ersetzen Sie <your-ip-address> durch die IP-Adresse, die Zugriff benötigt.
Schritt 3: SSL/TLS aktivieren
Aktivieren Sie für mehr Sicherheit SSL/TLS-Verbindungen. Weitere Informationen zur Einrichtung finden Sie in der MySQL-Dokumentation oder MariaDB-Dokumentation.
(Beispiel für MySQL)
- Zertifikate generieren:
sudo mysql_ssl_rsa_setup --uid=mysql
- In der Konfiguration aktivieren:
[mysqld]
ssl-ca = /var/lib/mysql/ca.pem
ssl-cert = /var/lib/mysql/server-cert.pem
ssl-key = /var/lib/mysql/server-key.pem
Schritt 4: Fail2Ban installieren (optional)
sudo apt install fail2ban
Konfigurieren Sie die Jail-Regeln für MySQL/MariaDB in /etc/fail2ban/jail.local.
Verwalten Ihres Datenbankservers
Schritt 1: Datenbank erstellen
Erstellen Sie eine Datenbank für Ihre Anwendung:
CREATE DATABASE my_application_db;
Schritt 2: Benutzer erstellen und Berechtigungen erteilen
Erstellen Sie einen Benutzer und weisen Sie Berechtigungen zu:
CREATE USER 'app_user'@'%' IDENTIFIED BY 'secure_password';
GRANT ALL PRIVILEGES ON my_application_db.* TO 'app_user'@'%';
FLUSH PRIVILEGES;
Schritt 3: Leistung überwachen
# Analyze slow queries
sudo mysqldumpslow -s t /var/log/mysql/mysql-slow.log
# Use MySQLTuner
wget https://mysqltuner.pl -O mysqltuner.pl
perl mysqltuner.pl
Schritt 4: Sichern und Wiederherstellen
Regelmäßige Backups sind für die Datensicherheit unerlässlich.
Sichern:
mysqldump -u root -p my_application_db > my_application_db.sql
Wiederherstellen:
mysql -u root -p my_application_db < my_application_db.sql
Automatisierte Backups (Cron-Job)
# Daily backup at 2 AM
0 2 * * * /usr/bin/mysqldump -u root -p PASSWORD app_db > /backups/app_db_$(date +\%F).sql
Fazit
Sowohl MySQL als auch MariaDB sind ausgezeichnete Optionen für die Einrichtung eines Datenbankservers unter Ubuntu. Während MySQL für seine Enterprise-Funktionen bekannt ist, zeichnet sich MariaDB durch seinen Open-Source-Ansatz und seine Leistungsverbesserungen aus. Wenn Sie dieser Anleitung folgen, können Sie Ihren Datenbankserver effektiv installieren, konfigurieren, sichern und verwalten.
Als Nächstes:
In unserer nächsten Anleitung, „LVM unter Ubuntu meistern: Flexibler Speicher für Datenbankserver“, erfahren Sie, wie Sie:
- Logische Volumes für dynamischen Datenbankspeicher erstellen und verwalten.
- Festplatten ohne Ausfallzeiten in der Größe ändern.
- Snapshots für konsistente Backups implementieren.
Verpassen Sie es nicht – folgen Sie unserem Blog, um auf dem Laufenden zu bleiben!