17. Einrichten eines sicheren Datenbankservers unter Ubuntu: MySQL vs. MariaDB

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

04. Benutzer und Berechtigungen auf Ubuntu Server verwalten: Ein umfassender Leitfaden – SysOSX: AI & Cloud

05. Netzwerkgrundlagen für Ubuntu Server: Ein umfassender Leitfaden – SysOSX: AI & Cloud

06. Software auf Ubuntu Server installieren und verwalten: Ein vollständiger Leitfaden – SysOSX: AI & Cloud

07.Patchen und Aktualisieren von Ubuntu Server: Ein umfassender Leitfaden – SysOSX: AI & Cloud

08. Sichern Sie Ihren Ubuntu-Server: Praktische Schritte zur Härtung und zum Schutz – 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

11. Zentrale Protokollierung für Ubuntu-Server: Ein Leitfaden, den man gelesen haben muss – SysOSX: AI & Cloud

12. Audit und Compliance für Ubuntu Server: Bewährte Verfahren – SysOSX: AI & Cloud

13. Einrichten Ihres Ubuntu-Servers für Hosting und Webanwendungen: Ultimativer Leitfaden – 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

16. Einrichten von Dateifreigabediensten auf Ubuntu Server: Eine vollständige Anleitung – 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:

FunktionMySQLMariaDB
LizenzDoppellizenz (GPL und proprietär)Open Source (GPL)
LeistungOptimiert für leseintensive WorkloadsVerbesserte Leistung sowohl für Lese- als auch für Schreib-Workloads
Standard-Speicher-EngineInnoDBAria (Alternative zu InnoDB)
FunktionenEnterprise-Funktionen in kostenpflichtigen Versionen verfügbarViele Funktionen (z. B. Thread-Pool, JSON-Funktionen) sind Open Source
KompatibilitätWeit verbreitet und von den wichtigsten Plattformen unterstütztKompatibel mit MySQL, unterstützt jedoch möglicherweise einige proprietäre MySQL-Funktionen nicht
ReplikationHerkömmliche ReplikationVerbesserte Replikation mit Galera-Cluster-Unterstützung
Community-SupportGroße Community und Enterprise-Support-OptionenStarker 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 auf 0.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)

  1. Zertifikate generieren:
sudo mysql_ssl_rsa_setup --uid=mysql  
  1. 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!

Kommentar hinterlassen