Maison > Article > base de données > Explication détaillée de l'exemple de code de configuration de synchronisation maître-esclave Mysql
Cet article présente principalement l'explication détaillée de la pratique de synchronisation maître-esclave Mysql. Il analyse le principe et la mise en œuvre de la synchronisation maître-esclave Mysql avec des exemples. Il est d'une grande valeur pratique. référez-vous à lui.
1. Introduction
J'ai déjà écrit un article : Le principe de la synchronisation maître-esclave Mysql.
Je crois que les chaussures pour enfants qui ont lu cet article ont hâte de l'essayer, n'est-ce pas ?
Aujourd'hui, nous aurons une synchronisation maître-esclave mysql pratique !
2. Description de l'environnement
os:ubuntu16.04
mysql:5.7.17
Les exercices pratiques suivants sont basés sur l'environnement ci-dessus. Bien entendu, les autres environnements sont sensiblement les mêmes.
3. Entrez dans le combat réel
Outils
2 machines :
IP principale : 192.168. 33.22
IP esclave : 192.168.33.33
Fonctionnement sur machine maître
Changement Fichier de configuration
Nous avons trouvé le fichier /etc/mysql/mysql.conf.d/mysqld.cnf
.
La configuration est la suivante :
bind-address = 192.168.33.22 #your master ip server-id = 1 #在master-slave架构中,每台机器节点都需要有唯一的server-id log_bin = /var/log/mysql/mysql-bin.log #开启binlog
2. Redémarrez MySQL pour que le fichier de configuration prenne effet.
sudo systemctl restart mysql
3. Créez un utilisateur MySQL pour la synchronisation maître-esclave.
$ mysql -u root -p Password: ##创建slave1用户,并指定该用户只能在主机192.168.33.33上登录。 mysql> CREATE USER 'slave1'@'192.168.33.33' IDENTIFIED BY 'slavepass'; Query OK, 0 rows affected (0.00 sec) ##为slave1赋予REPLICATION SLAVE权限。 mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'192.168.33.33'; Query OK, 0 rows affected (0.00 sec)
4. Ajouter un verrou en lecture à MYSQL
Afin de maintenir la cohérence des données de la base de données maître et de la base de données esclave, nous d'abord ajoutez un verrou de lecture à MySQL. Faites-le en lecture seule.
mysql> FLUSH TABLES WITH READ LOCK; Query OK, 0 rows affected (0.00 sec)
5. Enregistrez l'emplacement du MASTER REPLICATION LOG
Cette information sera utilisée plus tard.
mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000001 | 613 | | | | +------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec)
6. Exportez les informations de données existantes dans la base de données principale
$ mysqldump -u root -p --all-databases --master-data > dbdump.sql
7. le verrou en lecture de la base de données maître
mysql> UNLOCK TABLES;
8. copiez le fichier dbdump.sql à l'étape 6 sur l'esclave
scp dbdump.sql ubuntu@192.168.33.33:/home/ubuntu
Opérations sur la machine esclave
1. Changer le fichier de configuration
On retrouve le fichier /etc/mysql/mysql.conf.d/mysqld.cnf
. .
Modifiez la configuration comme suit :
bind-address = 192.168.33.33 #your slave ip server-id = 2 #master-slave结构中,唯一的server-id log_bin = /var/log/mysql/mysql-bin.log #开启binlog
2. Redémarrez MySQL pour que le fichier de configuration prenne effet
sudo systemctl restart mysql
3. Importer depuis la base de données principale. Fichier dbdump.sql exporté pour rendre les données maître-esclave cohérentes
$ mysql -u root -p < /home/ubuntu/dbdump.sql
4. Faire en sorte que l'esclave établisse une connexion avec le maître pour synchroniser
$ mysql -u root -p Password: mysql> STOP SLAVE; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> CHANGE MASTER TO -> MASTER_HOST='192.168.33.22', -> MASTER_USER='slave1', -> MASTER_PASSWORD='slavepass', -> MASTER_LOG_FILE='mysql-bin.000001', -> MASTER_LOG_POS=613; Query OK, 0 rows affected, 2 warnings (0.01 sec) mysql> START SLAVE; Query OK, 0 rows affected (0.00 sec)
Les valeurs de MASTER_LOG_FILE='mysql-bin.000001' et MASTER_LOG_POS=613 sont obtenues à partir du SHOW MASTER STATUS ci-dessus.
Après une configuration ainsi, la synchronisation maître-esclave peut être effectuée~
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!