====== Réplication MySQL maître esclave ====== Dans cet exemple, le maître est 192.168.7.1 et l'esclave 192.168.7.152. ===== Sur le maître ===== Éditer **/etc/my.cnf** et ajouter server-id = 1 log_bin = /var/lib/mysql/binlogs/mysql-bin.log log_error = /var/log/mysqld/mysql-bin.err # Si on ne veut répliquer que certaines bases, les lister ici: binlog_do_db = db1 binlog_do_db = db2 expire_logs_days = 10 max_binlog_size = 100M l'ID doit être unique parmi l'ensemble des serveurs Créer le répertoire des journaux binaires: mkdir /var/lib/mysql/binlogs chown mysql:mysql /var/lib/binlogs chmod 700 /var/lib/mysql/binlogs Redémarrer le service MySQL Créer un utilisateur ayant les droits: grant replication slave on *.* to 'sqlsync'@'192.168.7.152' identified by 'p@ssw0rd'; flush privileges; FLUSH TABLES WITH READ LOCK; SET GLOBAL read_only = ON; ===== Sur l'esclave ===== Éditer **/etc/my.cnf** et ajout un server-id (différent de celui du maître), puis: stop slave; change master to MASTER_HOST='192.168.7.1', MASTER_USER='sqlsync', MASTER_PASSWORD='p@ssw0rd', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=3423; start slave; Les valeurs MASTER_LOG_FILE et MASTER_LOG_POS doivent être récupérées depuis le maître avec show master status; On peut ensuite vérifier qu'il n'y ait pas d'erreur sur l'esclave avec show slave status; ===== Débloquer les écritures sur le maître ===== SET GLOBAL read_only = OFF; UNLOCK TABLES;