Konfigurieren einer Master-Slave Replikation mit MySQL
Master konfiguration
- Erstelle einen Benutzer für die Replikation (mindestens Grant Berechtigung auf alle Datenbanken)
- Falls die DB in Benutzung ist muss der Schreibzugriff erst einmal gesperrt werden:
mysql> FLUSH TABLES WITH READ LOCK;
- Exportiere alle aktuellen Datenbanken des Master Servers
- Anpassen der my.cnf Datei auf dem Master. (/etc/mysql/my.cnf)
[mysqld]
log-bin=mysql-bin
server-id=1
innodb_flush_log_at_trx_commit=1
sync_binlog=1
MySQL neu starten
- Lese die Aktuellen Daten des Binär Logs ausmysql> SHOW MASTER STATUS;und notiere Sie für den späteren gebrauch auf den Slave Server.
Slave configuration
- Anpassen der my.cnf auf dem Slave. (/etc/mysql/my.cnf)
[mysqld]
server-id=2
MySQL neu starten
- Die aktuellen Daten des Master-Servers (die zuvor exportiert wurden) auf dem zukünftigen Slave-Server importieren.
- Folgenden Befehl ausführen:
mysql> CHANGE MASTER TO-> MASTER_HOST='master_host_name',
-> MASTER_USER='replication_user_name',
-> MASTER_PASSWORD='replication_password',
-> MASTER_LOG_FILE='recorded_log_file_name', (info von Oben)
-> MASTER_LOG_POS=recorded_log_position; (info von Oben)
Den MySQL-Slave starten:
mysql> START SLAVE;
Der Status kann mit
mysql> SHOW slave STATUS;
abgefragt warden. Als Status sollte „Waiting for Master to send event” stehen.