MariaDB Replikation: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „= MariaDB absichern und Replikation einrichten = == Voraussetzungen == * Master-Server (MariaDB): 192.168.178.128 * Slave-Server (MariaDB): 192.168.178.129 *…“)
 
Zeile 10: Zeile 10:
  
 
== Auf beiden Servern ==
 
== Auf beiden Servern ==
MariaDB-Sicherheitskonfiguration durchführen:
+
;Fragen bei mysql_secure_installation beantworten
* mysql_secure_installation
 
  
Dabei folgende Optionen wählen:
+
Im folgenden Beispiel sind alle Antworten für eine sichere MariaDB-Installation geeignet:
# root-Passwort setzen: '''ja'''
+
 
# Anonyme Benutzer entfernen: '''ja'''
+
* Enter current password for root (enter for none): '''[dein aktuelles Passwort oder Enter, falls keines gesetzt]'''
# Root-Login remote verbieten: '''ja'''
+
* Switch to unix_socket authentication [Y/n]: '''n'''
# Testdatenbank entfernen: '''ja'''
+
* Change the root password? [Y/n]: '''n'''
# Privilegien neu laden: '''ja'''
+
* 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'''
  
 
== Zugriff von Slave auf Master erlauben (Master) ==
 
== Zugriff von Slave auf Master erlauben (Master) ==

Version vom 24. März 2025, 17:29 Uhr

MariaDB absichern und Replikation einrichten

Voraussetzungen

  • Master-Server (MariaDB): 192.168.178.128
  • Slave-Server (MariaDB): 192.168.178.129
  • Beide Systeme sind frisch installiert und erreichbar.
  • Root-Zugriff auf beiden Systemen vorhanden.

MariaDB absichern

Auf beiden Servern

Fragen bei mysql_secure_installation beantworten

Im folgenden Beispiel sind alle Antworten für eine sichere MariaDB-Installation geeignet:

  • Enter current password for root (enter for none): [dein aktuelles Passwort oder Enter, falls keines gesetzt]
  • Switch to unix_socket authentication [Y/n]: n
  • Change the root password? [Y/n]: n
  • 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

Zugriff von Slave auf Master erlauben (Master)

Auf dem Master eine Konfigurationsdatei bearbeiten:

  • nano /etc/mysql/mariadb.conf.d/50-server.cnf

Folgende Zeilen unter [mysqld] eintragen: bind-address = 192.168.178.128 server-id = 1 log_bin = /var/log/mysql/mariadb-bin.log binlog_format = ROW

Danach MariaDB neu starten:

  • systemctl restart mariadb

Benutzer für die Replikation erstellen (Master)

Auf Master als root einloggen:

  • mysql -u root -p

Replikationsbenutzer anlegen (Passwort anpassen):

  • CREATE USER 'repl'@'192.168.178.129' IDENTIFIED BY 'sicheres_passwort';
  • GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.178.129';
  • FLUSH PRIVILEGES;

Aktuelle binäre Log-Position ermitteln:

  • SHOW MASTER STATUS;

Notiere File und Position.

Slave vorbereiten

Konfigurationsdatei auf Slave bearbeiten:

  • nano /etc/mysql/mariadb.conf.d/50-server.cnf

Unter [mysqld] eintragen: bind-address = 192.168.178.129 server-id = 2 relay-log = /var/log/mysql/mariadb-relay-bin.log

Danach MariaDB neu starten:

  • systemctl restart mariadb

Replikation auf Slave aktivieren

Auf Slave-Server als root einloggen:

  • mysql -u root -p

Folgendes Kommando ausführen (File, Position und Passwort entsprechend anpassen):

  • CHANGE MASTER TO MASTER_HOST='192.168.178.128', MASTER_USER='repl', MASTER_PASSWORD='sicheres_passwort', MASTER_LOG_FILE='mariadb-bin.000001', MASTER_LOG_POS=1234;

Replikation starten:

  • START SLAVE;

Status überprüfen

Replikationsstatus kontrollieren:

  • SHOW SLAVE STATUS\G

Folgende Einträge sollten geprüft werden:

  • Slave_IO_Running: Yes
  • Slave_SQL_Running: Yes

Test der Replikation

Auf dem Master-Server eine Test-Datenbank erstellen:

  • mysql -u root -p
  • CREATE DATABASE replikationstest;

Auf dem Slave-Server kontrollieren, ob die Datenbank angekommen ist:

  • mysql -u root -p
  • SHOW DATABASES;

Die Datenbank replikationstest sollte sichtbar sein.