Afin de s’assurer que nos bases de données soient toujours accessibles, y compris en cas de panne de notre serveur, il est possible de mettre en place une réplication. Celle-ci permettra à un second serveur (le slave) de rejouer toutes les actions qui ont lieu sur le premier serveur (le master). En cas d’incident, notre second serveur contient les mêmes données que le serveur master. Il suffit donc de configurer les différents services pour qu’ils envoient leurs requêtes vers l’ancien serveur slave (qu’il faudra temporairement paramétrer en tant que master).
aptitude install mysql-server
mysq_install_db
mysql_secure_installation
Editer le fichier /etc/mysql/my.cnf
pour effectuer les changements suivants :
Une fois les changements enrgistrés, redémarrer le service MySQL :
systemctl restart mysql.service
Se connecter au serveur MySQL (via la commande mysql -u root -p
) :
CREATE USER 'replication'@'5.135.179.164' IDENTIFIED BY 'XXXXXXXX';
GRANT REPLICATION SLAVE ON * . * TO 'replication'@'IP_SERVER_SLAVE';
FLUSH PRIVILEGES;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
Editer le fichier /etc/mysql/my.cnf
pour effectuer les changements suivants :
Une fois les changements enrgistrés, redémarrer le service MySQL :
systemctl restart mysql.service
Se connecter au serveur MySQL (via la commande mysql -u root -p
) :
CHANGE MASTER TO MASTER_HOST='IP_SERVER_MASTER', MASTER_USER='replication', MASTER_PASSWORD='XXXXXXXX', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=378;
START SLAVE;
On vérifie que tout fonctionne bien avec la commande :
SHOW SLAVE STATUS;
Sur le master, on retire les lock sur les tables :
UNLOCK TABLES;