http://stackoverflow.com/questions/2366018/how-to-re-sync-the-mysql-db-if-master-and-slave-have-different-database-incase-o
Il vous faudra au préalable avoir créé les users avec les droits de réplication
Sur le serveur A
Dans une console car il faudra maintenir la connexion pour tenir le verrou à l’écriture
$ mysql
mysql> RESET MASTER;
Query OK, 0 rows affected (0.37 sec)
mysql> FLUSH TABLES WITH READ LOCK;
Query OK, 0 rows affected (0.10 sec)
mysql> SHOW MASTER STATUS;
+---------------------+----------+--------------+---------------------------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------------+----------+--------------+---------------------------------------------------------+
| A-mysql-bin.000001 | 5235 | | mysql,performance_schema,information_schema,test |
+---------------------+----------+--------------+---------------------------------------------------------+
1 row in set (0.00 sec)
puis dumper les bases souhaitées depuis un terminal par exemple
mysqldump -uroot -p --all-databases > /a/path/mysqldump.sql
puis enfin dans la console mysql
UNLOCK TABLES;
Sur le serveur B
STOP SLAVE;
importer le dump
mysql < mysqldump.sql
RESET SLAVE;
CHANGE MASTER TO MASTER_HOST = 'serverA', MASTER_PORT = 3306, MASTER_USER = 'slaveuser',
MASTER_PASSWORD = 'xxxxx', MASTER_LOG_FILE = 'A-mysql-bin.000001', MASTER_LOG_POS = 5235;
SLAVE START;
On peut dors et déjà vérifier que la réplication se fait du serveur A vers le serveur B en ajoutant une db ‘bidon’ sur A elle apparaitra sur B. Pour la supprimer il faudra le faire depuis A (sur B ne doit se tenir aucune écriture)
Puis il suffit de vérouiller les table en READ sur serveur B et de faire la même chose dans l’autre sens
Sur B saisir dans mysql
mysql> RESET MASTER;
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;
+---------------------+----------+--------------+---------------------------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------------+----------+--------------+---------------------------------------------------------+
| B-mysql-bin.000001 | 107 | | mysql,performance_schema,information_schema,test |
+---------------------+----------+--------------+---------------------------------------------------------+
Puis sur A
CHANGE MASTER TO MASTER_HOST = 'serverB', MASTER_PORT = 3306, MASTER_USER = 'slaveuser', MASTER_PASSWORD = 'xxxxxx', MASTER_LOG_FILE = 'B-mysql-bin.000001', MASTER_LOG_POS = 107;
SLAVE START;
A ce stade tout devrait être en ordre et la syncro devrait fonctionner dans les deux sens.
Sur B ne pas oublier de lever le verrou
UNLOCK TABLES;