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配置主从及重设主从方法