Startseite‎ > ‎Linuix‎ > ‎MySQL‎ > ‎

MySQL Replikation mit Master- und Slave-Server

Einstellung auf dem Master:

mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'root'@'IP_des_Slave' IDENTIFIED BY 'Passwort_des_root';

In der /etc/mysql/my.cnf folgendes aktivieren:
bind-address         = 192.168.178.10           # IP- des Master
log_bin                 = /var/log/mysql/mysql-bin.log
server-id               = 1
sync_binlog          = 1

mysqldump --all-databases --allow-keywords --single-transaction --flush-logs --master-data=2 -r /root/mysqldump.sql
/> head mysqldump.sql -n 25
# die Informationen master_log_file und master_log_pos notieren

/etc/init.d/mysql restart

Falls eine bereits bestehende Datenbank repliziert werden soll, muss auf dem Slave erst der MySQL-Dump des Masters eingespielt werden.

Einstellungen auf dem Slave:

In der /etc/mysql/my.cnf:
server-id               = 2
relay_log              = mysql-relay-bin.log
read_only             = 1

/etc/init.d/mysql restart

# die notirten Informationen von master_log_file und master_log_pos in den folgenden Befehl einfügen:
mysql> change master to master_host='IP_Des_Masters', master_user='root', master_password='Passwort_des_Root', master_log_file='mysql-bin.000007', master_log_pos=107;

mysql> start slave;

mysql> show slave status\G

Falls die Replikation funktioniert erfolg unter anderem die folgende Ausgabe:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
Comments