MariaDB Replikation: Unterschied zwischen den Versionen
| Zeile 67: | Zeile 67: | ||
Unter [mysqld] eintragen: | Unter [mysqld] eintragen: | ||
| − | bind-address = 192.168.178.129 | + | bind-address = 192.168.178.129 |
| − | server-id = 2 | + | server-id = 2 |
| − | relay-log = /var/log/mysql/mariadb-relay-bin.log | + | relay-log = /var/log/mysql/mariadb-relay-bin.log |
Danach MariaDB neu starten: | Danach MariaDB neu starten: | ||
Version vom 24. März 2025, 17:48 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)
Verzeichnis erstellen
- mkdir -p /var/log/mysql
- chown -R mysql:mysql /var/log/mysql
Auf dem Master eine Konfigurationsdatei bearbeiten:
- vi /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/mysql-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.
+--------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +--------------------+----------+--------------+------------------+ | mariadb-bin.000001 | 805 | | | +--------------------+----------+--------------+------------------+ 1 row in set (0.000 sec)
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.