MySQL配置主从及重设主从方法

MySQL因开源且强大而广泛流行,且功能也很丰富,通过其自带配置就可以轻松完成主从复制和主主复制。本文讲述Mysql配置主从及重设主从的方法。

系统环境

数据库版本:Mysql 5.7.32
主库服务器:192.168.1.20
从库服务器:192.168.1.21

搭建主从复制前,需要保持两个数据库中的所有数据完全一致,至少数据结构必须一致,否则无法搭建主从复制。

设置主从复制

0x01 配置主库

修改配置/etc/my.cnf,开启主库二进制日志:

# 每台服务器的“server_id”不能相同
server_id=20

#--主从复制参数开始--#
# 主库注释以下参数
#read-only=1
# 主库开启以下参数
log_bin = /data/mysql/bin-log/master-bin
binlog-format = mixed
sync-binlog = 1
expire_logs_days = 30
# 忽略复制系统表
replicate_wild_ignore_table=information_schema.%
replicate_wild_ignore_table=performance_schema.%
#--主从复制参数结束--#

在主库创建用于数据同步的用户,为了随后即将讲解的主从重设方法,所以在从库中也创建了相同的账号:

creater user 'dupdata'@'192.168.1.21' identified by 'dupdata';
grant replication slave on *.* to 'dupdata'@'192.168.1.21' identified by 'dupdata';
# 或执行以下SQL语句
# insert into mysql.user (User,Host,Password,Repl_slave_priv) values("dupdata","192.168.1.21",password("dupdata"),"Y");
flush privileges;

查看主库状态,记住二进制日志名和位置:

show master status;

0x02 配置从库

修改配置/etc/my.cnf,设置从库只读属性:

# 每台服务器的“server_id”不能相同
server_id=21

#--主从复制参数开始--#
# 从库须设置为只读
read-only=1
# 从库注释以下参数
# log_bin = /data/mysql/bin-log/master-bin
# binlog-format = mixed
# sync-binlog = 1
# expire_logs_days = 30
# 忽略复制系统表
# replicate_wild_ignore_table=information_schema.%
# replicate_wild_ignore_table=performance_schema.%
#--主从复制参数结束--#

从库执行以下SQL,实现从主库复制数据:

change master to
master _host='192.168.1.20'
master_user='dupdata'
master_password='dupdata'
# 修改初始日志文件master_log_file
master_log_file='master-bin.000001'

开启主从复制:

slave start;
show slave status\G

重设主从复制

修改配置/etc/my.cnf,调换主库和从库的主从复制参数。

1x01 配置原主库

# 执行以下SQL语句使主库只读
flush tables with read lock;
# 查看主库状态
show master status\G

1x02 配置原从库

# 关闭从库复制进程
stop slaveio_thread;
# 查看进程状态
show processlist;
# 看到以下提示
# Has read all relay log
# 现在开始重设主从
stop slave;
reset master;
reset slave;

1x03 配置原主库

# 将原主库解销
unlock tables;

1x04 重设主从复制

0x01开始重新配置MySQL主从复制。

原创文章禁止转载:技术学堂 » MySQL配置主从及重设主从方法

精彩评论

5+2=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏