Maison  >  Article  >  base de données  >  Explication détaillée de la méthode de création d'une base de données maître-esclave dans MySQL

Explication détaillée de la méthode de création d'une base de données maître-esclave dans MySQL

黄舟
黄舟original
2017-09-14 11:21:162212parcourir

Cet article présente principalement la méthode de construction de la base de données maître-esclave MySQL. Il analyse plus en détail les principes, les étapes et les techniques de fonctionnement spécifiques de la construction de la base de données maître-esclave MySQL. Les amis dans le besoin peuvent se référer à ce qui suit

Cet article explique les exemples Apprenez à créer une base de données maître-esclave MySQL. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Le serveur maître-esclave est une très bonne solution pour la sauvegarde de synchronisation de données en temps réel MySQL. Désormais, tous les grands, moyens et petits réseaux utiliseront le. Fonction de serveur maître-esclave de la base de données mysql pour La base de données du site Web a été sauvegardée de manière asynchrone. Présentons les étapes de configuration du serveur maître-esclave.

La réplication maître-esclave MySQL nécessite au moins deux services Mysql. Bien entendu, les services Mysql peuvent être distribués sur différents serveurs, ou plusieurs services peuvent être démarrés sur un seul serveur.

(1) Assurez-vous d'abord que les versions de Mysql sur les serveurs maître et esclave sont les mêmes

(2) Sur le serveur maître, créez un compte pour la base de données esclave et utilisez

pour accorder des autorisations, telles que : REPLICATION SLAVE


mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave001'@'192.168.0.99' IDENTIFIED BY
'123456';
Query OK, 0 rows affected (0.13 sec)
(3) Modifiez le fichier de configuration my.cnf de la base de données principale, ouvrez BINLOG et définissez la valeur de server-id. Après modification, le service Mysql doit être redémarré


[mysqld]
log-bin = /home/mysql/log/mysql-bin.log
server-id=1
Après (4), vous pouvez obtenir le nom du journal binaire actuel et le décalage du serveur principal. . Le but de cette opération est de démarrer le traitement des données à partir de ce point après avoir démarré à partir de la base de données


mysql> show master statusG;
*************************** 1. row ***************************
File: mysql-bin.000003
Position: 243
Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.00 sec)
(5) Eh bien, nous pouvons maintenant arrêter la mise à jour. fonctionnement des données maître et générer une sauvegarde de la base de données maître. Nous pouvons exporter les données vers l'esclave via la base de données mysqldump, bien sûr, vous pouvez également utiliser directement la commande cp pour copier le fichier de données dans la base de données esclave

Assurez-vous de READ LOCK la base de données principale avant d'exporter les données pour garantir la cohérence des données


mysql> flush tables with read lock;
Query OK, 0 rows affected (0.19 sec)
suivi de mysqldump


mysqldump -h127.0.0.1 -p3306 -uroot -p test > /home/chenyz/test.sql
Il est préférable de restaurer l'opération d'écriture une fois la sauvegarde de la base de données principale terminée


mysql> unlock tables;
Query OK, 0 rows affected (0.28 sec)
(6) Copiez le test.sql du sauvegardez les données maître tout à l'heure dans la base de données esclave et importez-les

(7) Modifiez ensuite le my.cnf de la base de données esclave, ajoutez le paramètre server-id, spécifiez l'utilisateur utilisé pour la réplication, l'IP et le port du serveur de base de données principal, ainsi que le fichier et l'emplacement pour démarrer le journal de réplication


[mysqld]
server-id=2
log_bin = /var/log/mysql/mysql-bin.log
master-host =192.168.1.100
master-user=test
master-pass=123456
master-port =3306
master-connect-retry=60
replicate-do-db =test
(8) dans Depuis le serveur, démarrez le processus esclave


mysql> start slave;
(9) Effectuer une

vérification sur le serveur esclaveshow salve status


mysql> SHOW SLAVE STATUSG
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: localhost
Master_User: root
Master_Port: 3306
Connect_Retry: 3
Master_Log_File: mysql-bin.003
Read_Master_Log_Pos: 79
Relay_Log_File: gbichot-relay-bin.003
Relay_Log_Pos: 548
Relay_Master_Log_File: mysql-bin .003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
(10) Ok, maintenant nous pouvons faire quelques opérations de mise à jour sur notre serveur principal, puis vérifier s'il a été mis à jour sur le serveur esclave

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn