Maison > Article > base de données > Comment configurer la réplication maître-esclave MySQL
Cet article vous présente la configuration de la réplication maître-esclave entre les serveurs MySQL. Jetons un coup d'œil au contenu spécifique.
Détails de configuration :
Serveur maître : 192.168.1.10
Serveur esclave : 192.168.1.20
Base de données : mydb
1. Configurer le serveur principal MySQL
Créer un serveur avec les autorisations REPLICATION SLAVE sur le compte mysql du serveur principal, le client de réplication se connectera au maître.
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'192.168.1.20' IDENTIFIED BY 'secretpassword'; mysql> FLUSH PRIVILEGES;
Ayez des instructions d'écriture de bloc sur toutes les tables, donc n'apportez pas de modifications après la sauvegarde.
mysql> use mydb; mysql> FLUSH TABLES WITH READ LOCK; mysql> exit;
Modifiez le fichier de configuration mysql et ajoutez le code suivant dans la section [mysqld].
# vim /etc/my.cnf
[mysqld] log-bin=mysql-bin binlog-do-db=mydb server-id=1 innodb_flush_log_at_trx_commit=1 sync_binlog=1
Redémarrez le serveur maître MySQL pour que les modifications prennent effet.
# service mysqld restart
Utilisez les commandes suivantes pour vérifier le nom actuel du fichier journal binaire (Fichier) et la valeur de décalage actuelle (Position).
mysql > SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000002 | 107 | mydb | | +------------------+----------+--------------+------------------+
Le résultat ci-dessus montre que le binaire actuel utilise mysql-bin.000002 avec un décalage de 107. Notez ces valeurs pour une utilisation sur le serveur esclave.
Sauvegardez la base de données et copiez-la sur le serveur MySQL esclave.
# mysqldump -u root -p mydb > mydb.sql # scp mydb.sql 192.168.1.20:/opt/
Une fois la sauvegarde terminée, supprimez le READ LOCK de la table afin que les modifications puissent être apportées.
mysql> UNLOCK TABLES;
2. Configurez le serveur esclave MySQL
Modifiez le fichier de configuration salve mysql et ajoutez les valeurs suivantes dans la section [mysqld].
# vim /etc/my.cnf
[mysqld] server-id=2 replicate-do-db=mydb
server-id est toujours une valeur non nulle. Ces valeurs ne seront jamais similaires à celles des autres maîtres et esclaves.
Redémarrez le serveur esclave mysql. Si vous avez configuré la réplication, veuillez utiliser -skip-slave-start au démarrage et ne vous connectez pas immédiatement au serveur maître.
# /etc/init.d/mysqld restart
Utilisez la commande suivante pour définir la valeur de l'option sur le serveur esclave.
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.10', -> MASTER_USER='repl_user', -> MASTER_PASSWORD='secretpassword', -> MASTER_LOG_FILE='mysql-bin.000002', -> MASTER_LOG_POS=107;
Démarrez enfin le fil de discussion esclave
mysql> SLAVE START;
Vérifiez l'état du serveur esclave.
mysql> show slave status G
*************************** 1. row *************************** Slave_IO_State: Master_Host: 192.168.1.15 Master_User: repl_user Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000002 Read_Master_Log_Pos: 107 Relay_Log_File: mysqld-relay-bin.000001 Relay_Log_Pos: 4 Relay_Master_Log_File: mysql-bin.000002 Slave_IO_Running: No Slave_SQL_Running: No Replicate_Do_DB: mydb Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 107 Relay_Log_Space: 107 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: NULL Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 1 1 row in set (0.00 sec) mysql>
La réplication maître-esclave MySQL a été configurée avec succès sur votre système et votre mode de travail.
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!