Windows下搭建Mysql主从以及重设主从之详细方案

Mysql因免费而广泛流行,且自带功能也很强大,通过其自带配置就可以轻松完成主从复制和主主复制。

因项目需求,本文按照当时在Windows系统下部署Mysql的流程来讲述搭建主从过程,其实在Linux系统下的方法也是大同小异。

Linux下安装Mysql的安装方法见本人之前的文章CentOS 7.2 安装 MySQL 5.7 详细手册

系统环境

操作系统:Windows Server 2008 x64
 数据库:Mysql 5.7.20
 服务器:192.168.1.20 / 192.168.1.21

主数据库:192.168.1.20
从数据库:192.168.1.21

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

设置主从复制

注意:每台服务器的“server_id”不能相同,同时主从库均设置忽略复制系统表,my.ini配置如下:

replicate_wild_ignore_table=information_schema.%
replicate_wild_ignore_table=performance_schema.%

配置主库

修改my.ini,开启主库二进制日志:

server_id=110
log_bin = D:\\Program Files\\mysql\\bin-log\\master-bin
#log_bin = /data/mysql/bin-log/master-bin
binlog-format = mixed
sync-binlog = 1
#expire_logs_days = 30

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

creater user 'dupdata'@'192.168.1.21' identified by 'dupdata';
grant replication slave on *.* to 'dupdata'@'192.168.1.21' identified by 'dupdata';
#或者:insert into mysql.user (User,Host,Password,Repl_slave_priv) values("dupdata","192.168.1.21",password("dupdata"),"Y");
flush privileges;

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

show master status;

配置从库

修改my.ini,设置从库只读属性:

server_id=120
read-only=1

在从库中输入以下命令,实现从主库复制数据。

change master to

master _host='192.168.1.20'

master_user='dupdata'

master_password='dupdata'

master_log_file='mysql-bin.000001'

开始主从复制

slave start;

show slave status\G

重设主从复制

修改my.ini,修改主库和从库的只读属性,即原主库改为只读,原从库去掉只读:

read-only=1  #原主库
#read-only=1 #原从库

配置主库

使主库只读生效,重启数据库或执行以下命令

flush tables with read lock;

查看主库状态

show master status\G

配置从库

stop slaveio_thread;

show processlist;

当看到 Has read all relay log 后,然后就可以重设主从了:

stop slave;
reset master;
reset slave;

执行以下命令,解锁原主库,然后请全新配置Mysql主从复制:

unlock tables;

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

感谢您的支持与帮助

支付宝扫一扫打赏

微信扫一扫打赏