Veuillez suivre les étapes ci-dessous pour configurer la configuration MySQL Master-Slave.
Ces étapes ont été testées et fonctionnent sur les nœuds CentOS 7.x.
Pour suivre, vous aurez besoin d'au moins deux nœuds de calcul. Vous pouvez lancer des nœuds de calcul à la demande sur E2E Public Cloud. Cliquez ici pour en savoir plus.
Supposons les serveurs ci-dessous.
IP du serveur maître :192.168.1.1
IP du serveur esclave :192.168.1.2
Étape 1 :Préparer le serveur maître
#yum -y update
Étape 2 :Ajouter un référentiel
rpm -ivh http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
Étape 3 :Installez mysql-server 5.6 (version stable)
yum -y install mysql-server
Étape 4 :Démarrer/arrêter/redémarrer le serveur MySQL
#systemctl start mysqld #systemctl stop mysqld #systemctl restart mysqld #systemctl status mysqld
Étape 5 :Réinitialiser le mot de passe racine MySQL
#mysql_secure_installation Enter current password for root (enter for none): Enter a secure password Set root password? [Y/n] y New password: Re-enter new password: To Remove anonymous users Remove anonymous users? [Y/n] y To disable remote root login Disallow root login remotely? [Y/n] y To reload privileges Reload privilege tables now? [Y/n] y
Étape 6 :Configurer un MySQL dans le serveur maître
Ajoutez les entrées suivantes dans la section [mysqld].
# vim /etc/my.cnf server-id = 1 log-bin = /var/lib/mysql/mysql-bin Restart MySQL service #systemctl restart mysqld
Étape 7 :Créez et accordez l'accès à la réplication
# mysql -u root -p mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'192.168.1.2' IDENTIFIED BY replication-password; mysql> FLUSH PRIVILEGES; mysql> \q
Étape 8 :Réalisez tous les vidages de la base de données dans un écran afin que le processus de vidage s'exécute dans la session même si la session du terminal est fermée.
#screen -S#mysqldump -u root -p --all-databases --master-data > /root/all-databases.sql Sync the dump to the slave server. #scp /root/all-databases.sql root@ :/root/ Or #rsync -arvP /root/all-databases.sql root@ :/root/
Étape 9 :Préparez le serveur esclave
Suivez les étapes 1 à 5 pour créer le serveur esclave.
Ajoutez les entrées suivantes dans la section [mysqld].
# vim /etc/my.cnf server-id = 2 Restart MySQL service #systemctl restart mysqld
Remarque :L'ID de serveur doit être unique.
Étape 10 :Restaurer le vidage
#mysql -u root -p /root/all-databases.sql
Étape 11 :Familiarisez-vous avec MASTER_LOG_FILE et MASTER_LOG_POS
#head -n 30 /root/all-databases.sql | grep MASTER_LOG_FILE CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=120;
Remarque :suivez les étapes 1 à 5 pour créer un serveur esclave.
Étape 12 : Configurer le serveur esclave
#mysql -u root -p mysql> SLAVE STOP; mysql> CHANGE MASTER TO MASTER_HOST='[192.168.1.1]', MASTER_USER='['slave_user']', MASTER_PASSWORD='[replication-password]', MASTER_LOG_FILE='[file-listed-on-master-status]', MASTER_LOG_POS=[log-position-listed-on-master-status]; mysql> START SLAVE; mysql> SHOW SLAVE STATUS\G The above command will show the complete slave status and verify the Slave_IO_Running and Slave_SQL_Running should be Yes. Slave_IO_Running: Yes Slave_SQL_Running: Yes