MariaDB Replikation

Aus Xinux Wiki
Version vom 24. März 2025, 17:23 Uhr von Thomas.will (Diskussion | Beiträge) (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 *…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

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

MariaDB-Sicherheitskonfiguration durchführen:

  • mysql_secure_installation

Dabei folgende Optionen wählen:

  1. root-Passwort setzen: ja
  2. Anonyme Benutzer entfernen: ja
  3. Root-Login remote verbieten: ja
  4. Testdatenbank entfernen: ja
  5. Privilegien neu laden: ja

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.