MySQL
De Wiki Automatisme et Informatique.
SERVEUR1:
Ajouter ce qui suit à la section [mysqld] du fichier my.cnf et redémarrer mysqld:
# primary master server id server-id=1 auto_increment_offset=1 # total number of master servers auto_increment_increment=2 # local slave replication options log-bin=master1-bin log-slave-updates # remote master replication options master-host=ip-serveur2 master-port=3306 master-user=slave master-password=password_slave master-connect-retry=10
SERVEUR2:
Ajouter ce qui suit à la section [mysqld] du fichier my.cnf et redémarrer mysqld:
# secondary master server id server-id=2 auto_increment_offset=2 # total number of master servers auto_increment_increment=2 # local slave replication options log-bin=master2-bin log-slave-updates # remote master replication options master-host=ip-serveur1 master-port=3306 master-user=slave master-password=password_slave master-connect-retry=10
sur SERVEUR1 et SERVEUR2
ne pas oublier de decommenter :
#bind addresse =0.0.0.0
dans le fichier my.cnf
connexion mysql :
mysql -u root -p
Mysql> USE mysql;
Mysql> INSERT INTO user (Host, User, Password, Select_priv, Reload_priv, Super_priv, Repl_slave_priv) VALUES ('Any', 'slave user', password('slave password'), 'Y', 'Y', 'Y', 'Y');
Mysql> FLUSH PRIVILEGES;
/etc/init.d/mysql restart
Réplication sur SERVEUR2 (SERVEUR1 -> SERVEUR2):
Sur SERVEUR1:
pour repartir avec des index les plus bas :
mysql> reset master;
mysql> SHOW MASTER STATUS\G File: master1-bin.000001 Position: 254 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.20 sec)
Bien noter : File et position
Sur SERVEUR2:
mysql> CHANGE MASTER TO MASTER_HOST='ip-serveur1', MASTER_USER='slave', MASTER_PASSWORD='slave_password', MASTER_LOG_FILE='master1-bin.000001', -------> le nom file note sur le SERVEUR1 MASTER_LOG_POS=254; -------> la position notée sur le SERVEUR1 mysql> LOAD DATA FROM MASTER; mysql> START SLAVE ;
Réplication sur SERVEUR1 (SERVEUR2 -> SERVEUR1):
Sur SERVEUR2:
pour repartir avec des index les plus bas :
mysql> reset master;
mysql> SHOW MASTER STATUS\G File: master2-bin.000001 Position: 254 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.20 sec)
Bien noter : File et position
Sur SERVEUR1:
mysql> CHANGE MASTER TO MASTER_HOST='ip-serveur2', MASTER_USER='slave', MASTER_PASSWORD='slave_password', MASTER_LOG_FILE='master2-bin.000001', -------> le nom file note sur le SERVEUR2 MASTER_LOG_POS=254; -------> la position notée sur le SERVEUR2 mysql> LOAD DATA FROM MASTER; mysql> START SLAVE ;
Vérifier que les réplications fonctionnent :
Sur SERVEUR1:
mysql>show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
...
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Sur SERVEUR2:
mysql>show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
...
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
On peut alors creer ou modifier les bases sur l'un ou l'autre serveur, elles seront répliquées.


