MySQL und MariaDB Installation: Grundlegende Verwaltung
Schritt-für-Schritt MySQL und MariaDB Installation unter Linux, mysql_secure_installation, Datenbanken und Benutzer erstellen, SQL-Grundbefehle, Remote-Zugriff und Performance-Tuning.
MySQL und MariaDB Installation: Grundlegende Verwaltung
MySQL und MariaDB sind die weltweit am häufigsten verwendeten relationalen Datenbankverwaltungssysteme. Die große Mehrheit der Webanwendungen, E-Commerce-Websites und Unternehmenssysteme verwendet eines dieser Datenbanksysteme. Dieser Leitfaden behandelt die Installation, grundlegende Konfiguration und Verwaltung beider Systeme.
MySQL vs MariaDB
MariaDB ist ein Community-Fork, der von den ursprünglichen MySQL-Entwicklern erstellt wurde. Wesentliche Unterschiede:
Merkmal
MySQL
MariaDB
Lizenz
GPL + Kommerziell
GPL (vollständig offen)
Entwickler
Oracle
MariaDB Foundation
Performance
Gut
Generell schneller
Kompatibilität
Referenz
MySQL-kompatibel
Neue Features
Langsamer
Schnellerer Release-Zyklus
MariaDB wird für neue Projekte empfohlen. Es ist vollständig MySQL-kompatibel und bietet generell bessere Performance. Die Migration von MySQL zu MariaDB ist unkompliziert.
MySQL Installation (Ubuntu/Debian)
Paketliste aktualisieren und installieren
hljs bash
# Paketliste aktualisieren
apt update
# MySQL Server installieren
apt install -y mysql-server
# Dienststatus prüfen
systemctl status mysql
# Autostart aktivieren
systemctl enable mysql
MySQL-Version überprüfen
hljs bash
mysql --version
# Ausgabe: mysql Ver 8.0.xx Distrib 8.0.xx, for Linux (x86_64)
MariaDB Installation (Ubuntu/Debian)
hljs bash
# Paketliste aktualisieren
apt update
# MariaDB Server installieren
apt install -y mariadb-server mariadb-client
# Dienststatus prüfen
systemctl status mariadb
# Autostart aktivieren
systemctl enable mariadb
# Version prüfen
mysql --version
Führen Sie nach der Installation immer den Sicherheitsassistenten aus:
hljs bash
mysql_secure_installation
Der Assistent stellt folgende Fragen:
Enter current password for root (enter for none): [Enter]
Switch to unix_socket authentication [Y/n]: n
Change the root password? [Y/n]: Y
New password: [Starkes Passwort eingeben]
Re-enter new password: [Passwort wiederholen]
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
Deaktivieren Sie den Remote-Root-Zugriff. Erstellen Sie separate Benutzer für Remote-Verbindungen. Verwenden Sie starke Passwörter (mindestens 12 Zeichen mit Groß-/Kleinbuchstaben, Zahlen und Sonderzeichen).
Verbindung zu MySQL/MariaDB
hljs bash
# Als Root verbinden
mysql -u root -p
# Mit bestimmter Datenbank verbinden
mysql -u benutzer -p datenbankname
# Mit Remote-Server verbinden
mysql -h 192.168.1.100 -u benutzer -p datenbankname
# Mit bestimmtem Port verbinden
mysql -h server -P 3306 -u benutzer -p
systemctl restart mysql
# oder
systemctl restart mariadb
3. Firewall-Regel hinzufügen
hljs bash
# Mit UFW
ufw allow 3306/tcp
# Mit iptables
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
Den MySQL-Port (3306) ins Internet zu öffnen ist ein Sicherheitsrisiko. Verwenden Sie wenn möglich SSH-Tunneling oder VPN. Wenn Remote-Zugriff erforderlich ist, beschränken Sie ihn auf bestimmte IP-Adressen.
systemctl restart mysql
# Variablen prüfen
mysql -u root -p -e "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"
Dienstverwaltung
hljs bash
# Dienst starten
systemctl start mysql
# Dienst stoppen
systemctl stop mysql
# Dienst neu starten
systemctl restart mysql
# Konfiguration neu laden
systemctl reload mysql
# Dienststatus prüfen
systemctl status mysql
# Logs anzeigen
journalctl -u mysql -f
tail -f /var/log/mysql/error.log
Fazit
MySQL und MariaDB sind leistungsstarke und zuverlässige Datenbanksysteme. Vernachlässigen Sie nach der Installation nicht die Sicherheitskonfiguration, führen Sie regelmäßige Backups durch und optimieren Sie die Performance-Einstellungen entsprechend den Ressourcen Ihres Servers. Beide Systeme laufen problemlos auf REXE-Servern.
Häufig gestellte Fragen
Was soll ich zwischen MySQL und MariaDB wählen?
MariaDB wird für neue Projekte empfohlen. Es ist vollständig MySQL-kompatibel, bietet generell bessere Performance und ist vollständig Open Source. Ihre bestehenden MySQL-Anwendungen laufen ohne Änderungen auf MariaDB. Wenn Sie jedoch Oracle-spezifische MySQL-Features benötigen (Group Replication, MySQL Shell), wählen Sie MySQL.
Ich habe das MySQL-Root-Passwort vergessen, wie setze ich es zurück?
Starten Sie MySQL im Safe-Modus: Führen Sie systemctl stop mysql aus, dann mysqld_safe --skip-grant-tables &. Verbinden Sie sich mit mysql -u root und führen Sie ALTER USER 'root'@'localhost' IDENTIFIED BY 'NeuesPasswort'; aus. Führen Sie abschließend FLUSH PRIVILEGES; aus und starten Sie den Dienst normal neu.
Ich kann keine Remote-Verbindung herstellen, was soll ich prüfen?
Prüfen Sie drei Dinge: 1) Stellen Sie sicher, dass bind-address auf 0.0.0.0 gesetzt ist, 2) Prüfen Sie, ob der Benutzer mit '%' oder der spezifischen IP erstellt wurde (SHOW GRANTS FOR 'user'@'%'), 3) Stellen Sie sicher, dass Port 3306 in der Firewall geöffnet ist (ufw status oder iptables -L).
Wie soll ich den innodb_buffer_pool_size-Wert einstellen?
Setzen Sie ihn auf 70-80% des gesamten RAM Ihres Servers. Zum Beispiel 2-3GB für 4GB RAM, 5-6GB für 8GB RAM. Wenn der Server ausschließlich für die Datenbank verwendet wird, können Sie bis zu 80% gehen. Vergessen Sie nicht, den Dienst nach Änderungen neu zu starten.
Können MySQL und MariaDB auf demselben Server laufen?
Technisch möglich, aber nicht empfohlen. Beide verwenden standardmäßig Port 3306 und es kommt zu Konflikten. Sie können einen auf einen anderen Port verschieben, aber das schafft Komplexität. Im Allgemeinen ist es besser, eines zu wählen und dabei zu bleiben.
PostgreSQL-Installation auf Ubuntu/Debian und RHEL/CentOS, Benutzer und Datenbanken erstellen, grundlegende SQL-Befehle, Remote-Verbindung konfigurieren und Backup-Strategien. Schritt-fur-Schritt-Anleitung.
Redis und Memcached Installation auf Ubuntu/Debian, Grundbefehle, Persistenz-Einstellungen, TTL-Konfiguration, Redis vs Memcached Vergleich und Anwendungsintegration.