Construction de l'environnement maître-esclave MySQL (Windows un maître et deux esclaves)

Table des matières

1. Configuration de la bibliothèque principale

2. Réplication des données

3. Configuration de la bibliothèque esclave

4. Solution aux temps d'arrêt de la base de données esclave

5. Suppression de données de la base de données par erreur

6. La bibliothèque principale est en panne


1. Configuration de la bibliothèque principale

1. Modifier la bibliothèque principale my.ini

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
[mysqld]
# skip-grant-tables
group_concat_max_len=102400
#设置3306端口
port = 3306 
# 设置mysql的安装目录  
basedir=D:\DataBase\mysql
# 设置mysql数据库的数据的存放目录  
datadir=D:\DataBase\mysql\data  
# 允许最大连接数  
max_connections=1000  
# 服务端使用的字符集默认为8比特编码的latin1字符集  
character-set-server=utf8  
# 创建新表时将使用的默认存储引擎  
default-storage-engine=INNODB
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

# Server Id.数据库服务器id,这个id用来在主从服务器中标记唯一mysql服务器
server-id=1
#默认不开启二进制日志,需要配置
log-bin=mysql-bin
#设置需要同步的数据库 
binlog-do-db=nctest_zj 
#屏蔽系统库同步 
binlog-ignore-db=mysql 
binlog-ignore-db=information_schema 
binlog-ignore-db=performance_schema

2. Ouvrez cmd, connectez-vous à la bibliothèque principale (ou navicat, connectez-vous à la bibliothèque principale et ouvrez la ligne de commande)

mysql -u root -p

3. Autoriser le compte dédié pour la réplication maître-esclave

mysql> GRANT REPLICATION SLAVE ON *.* TO 'root'@'%' IDENTIFIED BY 'by123456';

 4. Actualiser les autorisations

msyql> flush privileges;

5. Interrogez les informations de la bibliothèque principale, enregistrez le nom et la position du fichier

msyql> show master status;


2. Réplication des données

1. Définissez la bibliothèque principale en lecture seule pour éviter d'ajouter et de modifier des données

set global read_only=1;
flush tables with read lock;

2. Copier les données

3. Restaurer les paramètres de la première étape

unlock tables;
set global read_only=0;

3. Configuration de la bibliothèque esclave

1. Ouvrez la bibliothèque esclave my.ini

server-id ne peut pas être le même que la bibliothèque principale

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
[mysqld]
# skip-grant-tables
group_concat_max_len=102400
#设置3306端口
port = 3306 
# 设置mysql的安装目录  
basedir=D:\DataBase\mysql
# 设置mysql数据库的数据的存放目录  
datadir=D:\DataBase\mysql\data  
# 允许最大连接数  
max_connections=1000  
# 服务端使用的字符集默认为8比特编码的latin1字符集  
character-set-server=utf8  
# 创建新表时将使用的默认存储引擎  
default-storage-engine=INNODB
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

# Server Id.数据库服务器id,这个id用来在主从服务器中标记唯一mysql服务器
server-id=2
#默认不开启二进制日志,需要配置
log-bin=mysql-bin
#设置需要同步的数据库 
replicate_wild_do_table=nctest_zj.%   
#屏蔽系统库同步 
replicate_wild_ignore_table=mysql.% 
replicate_wild_ignore_table=information_schema.% 
replicate_wild_ignore_table=performance_schema.%

2. cmd pour se connecter depuis la bibliothèque, ou navicat pour ouvrir la ligne de commande

3. En fonction du nom de fichier et de la position de la bibliothèque maître, configurez les informations de la bibliothèque esclave

CHANGE MASTER TO MASTER_HOST='192.168.1.15',MASTER_PORT=3306,MASTER_USER='root', MASTER_PASSWORD='root',MASTER_LOG_FILE='mysql-bin.000039',MASTER_LOG_POS=47257;

4. Démarrez le service

# 开启
mysql> start slave
# 停止
mysql> stop slave
# 重启
mysql> reset slave

5. Vérifiez l'état de la bibliothèque esclave

mysql>show slave status\G

Assurez-vous que les deux valeurs suivantes sont oui, la configuration maître-esclave est réussie, si l'une est non, vous devez vérifier le journal pour localiser la raison.

(afficher les variables comme 'log_error' ;) Allez dans le répertoire correspondant pour afficher le journal

 6. Créez un utilisateur pour la bibliothèque esclave et configurez les autorisations en lecture seule

create user nymi identified by 'by123456';
grant select on *.* to nymi@'%' ; 
flush privileges;

Dans le projet, utilisez cet utilisateur pour vous connecter à la base de données, afin d'éviter d'utiliser l'utilisateur root de la bibliothèque esclave pour modifier les données et faire échouer la réplication maître-esclave.


4. Solution aux temps d'arrêt de la base de données esclave

Après le redémarrage, de manière générale, la position à laquelle mysql s'est arrêté continuera à être synchronisée.

Si la réplication maître-esclave échoue, reconfigurez les étapes suivantes

Bibliothèque principale :

afficher des variables comme 'log_error' ;
afficher la position dans le journal,

De la bibliothèque

stop esclave ;
CHANGE MASTER TO MASTER_HOST='192.168.1.15',MASTER_PORT=3306,MASTER_USER='root', MASTER_PASSWORD='root',MASTER_LOG_FILE='file information',MASTER_LOG_POS=Position information ; (les informations sur le fichier proviennent de la bibliothèque
maître afficher l'état du maître ;)
démarrer l'esclave ;

L'idée est de trouver un nœud normal et d'effectuer la synchronisation des données


5. Suppression de données de la base de données par erreur

1. Le projet utilise un utilisateur en lecture seule pour se connecter à la bibliothèque esclave afin d'éviter une suppression accidentelle

2. Récupérez les données supprimées accidentellement, puis suivez la quatrième étape pour résoudre le problème

3. Resynchronisez les données, suivez la troisième étape pour résoudre


6. La bibliothèque principale est en panne

1. Redémarrez la bibliothèque principale et vérifiez l'état de la bibliothèque esclave

2. S'il n'est pas résolu, la bibliothèque principale et la bibliothèque esclave exécutent respectivement les instructions suivantes et re-spécifient le nom de fichier et la position trouvés par l'instruction de la bibliothèque principale dans la bibliothèque esclave.

show master status;
stop slave;
CHANGE MASTER TO MASTER_HOST='192.168.1.15',MASTER_PORT=3306,MASTER_USER='root', MASTER_PASSWORD='root',MASTER_LOG_FILE='file信息',MASTER_LOG_POS=Position信息;
start  slave;

Je suppose que tu aimes

Origine blog.csdn.net/Spring_possible/article/details/127730991
conseillé
Classement