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 <username> -p --all-databases --master-data > dbdump.db
ou bien
shell> mysqldump -u <username> -p <dbname> --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 <username> -p <dbname> < dbdump.db
Configurer la réplication
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.