====== Configurer la réplication ======
===== Sur le maître =====
==== Activer le log binaire et déclarer un ID ====
Dans le fichier /etc/mysql/my.cnf :
[mysqld]
log-bin=mysql-bin
server-id=1
==== Relancer le service mysql ====
systemctl restart mysql
==== Créer un utilisateur avec les droits de réplication ====
mysql> CREATE USER 'repl'@'%.example.com' IDENTIFIED BY 'password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.example.com';
===== Sur l'esclave =====
==== Déclarer un ID ====
Dans le fichier /etc/mysql/my.cnf :
[mysqld]
server-id=2
===== Sur le maître =====
==== Bloquer l'écriture sur les tables ====
mysql> FLUSH TABLES WITH READ LOCK;
Attention : Garder la session ouverte pour maintenir le verrou. En quittant la session, le verrou est libéré.
==== Relever les données d'index ====
mysql> SHOW MASTER STATUS;
==== Extraire un snapshot de la base de données ====
shell> mysqldump -u -p --all-databases --master-data > dbdump.db
ou bien
shell> mysqldump -u -p --master-data > dbdump.db
===== Sur l'esclave =====
==== Arrêter la réplication ====
mysql> STOP SLAVE;
==== Importer le snapshot du maître sur l'esclave ====
Après avoir copier le dump du serveur maître sur le serveur esclave, il faut le restaurer :
shell> mysql -u -p < dbdump.db
==== Configurer la réplication ====
Voir la page :
https://dev.mysql.com/doc/refman/5.6/en/change-master-to.html
==== Vérifier les données d'index ====
mysql> SHOW SLAVE STATUS;
Les champs **Master_Log_File** et **Read_Master_Log_Pos** doivent avoir les valeurs relevées précédemment.
==== Démarrer la réplication ====
mysql> START SLAVE;
A partir de maintenant, la réplication est active. Il est éventuellement possible de tester en faisant une modification sur la base de donnée du maître et de s'assurer qu'elle est répliquée sur l'esclave.