Soient deux mysqld fraichement installés, sans data donc.
Mettre en oeuvre une réplication croisée de type master/master :
Sur une debian par exemple on ajoute les paramètres suivants au fichier /etc/mysql/conf.d/replication.cnf:
[mysqld] server-id=1 auto-increment-increment = 20 # à ajuster /!\ auto-increment-offset = 1 # à ajuster /!\ log-bin=/var/log/mysql/mysql-bin max_binlog_size=50M replicate-ignore-db=mysql expire_logs_days=3
On stop relance le mysqld complet (pas de simple reload):
/etc/init.d/mysql stop /etc/init.d/mysql start
Avec le client mysql :
mysql> grant REPLICATION SLAVE,\ SELECT,\ SUPER,\ RELOAD\ on *.* to 'repl'@sgbd02 \ identified by 'passreplication';
mysql> CHANGE MASTER TO \ MASTER_HOST='sgbd02',\ MASTER_USER='repl',\ MASTER_LOG_FILE='mysqlmaster02-bin.000001',\ MASTER_PASSWORD='passreplication';
mysql> start slave;
Toujours sur une debian par exemple on ajoute les paramètres suivants au fichier /etc/mysql/conf.d/replication.cnf :
[mysqld] server-id=2 auto-increment-increment = 20 # à ajuster /!\ auto-increment-offset = 2 # à ajuster /!\ log-bin=/var/log/mysql/mysql-bin max_binlog_size=50M replicate-ignore-db=mysql expire_logs_days=3
On stop relance le mysqld complet (pas de simple reload):
/etc/init.d/mysql stop /etc/init.d/mysql start
Avec le client mysql :
mysql> grant REPLICATION SLAVE,\ SELECT,\ SUPER,\ RELOAD\ on *.* to 'repl'@sgbd01 \ identified by 'passreplication';
mysql> CHANGE MASTER TO \ MASTER_HOST='sgbd01',\ MASTER_USER='repl', MASTER_LOG_FILE='mysqlmaster01-bin.000001',\ MASTER_PASSWORD='passreplication';
mysql> start slave;
Normalement la commande :
mysql> show slave status\G;
Devrait renvoyer pas mal de choses dont :
Slave_IO_Running: Yes Slave_SQL_Running: Yes
Tant que ces deux lignes ne sont pas à Yes : same player shoot again.
Quand :
mysql>show slave status\G;
contient la ligne :
Slave_IO_Running: No
alors la commande suivante est la bienvenue :
mysql> reset slave;