Windows下MySQL5.6的主从(Master Slave)配置

2016-12-02 15:14:59 6451

环境

配置Mysql的MasterSlave至少需要两台机器。我这里使用二台虚拟机进行测试。三台机器配置完全一样,MySQL安装的路径也是一样:

第一台:192.168.111.78; Windows 2008R2 + MySQL 5.6.10.1

第二台:192.168.111.132; Windows 2008R2 + MySQL 5.6.10.1

 

第一台111.78的用作master,其他用做slave。

配置Master

192.168.111.78这台服务器上找到MySQL的配置文件my.ini。我的具体路径是在C:ProgramDataMySQLMySQL Server 5.6下。

这里主要一点就是关于my.ini的路径,my.ini都是在数据存放的路径下,有些时候我们会发现在mysql的安装路径下找不到,只找的到my_deful.ini。

打开配置文件,在最下面添加如下配置:

************************************************************************************

#主服务器Master start 
#日志输出地址 主要同步使用 
log-bin=master-bin.log 
#同步数据库 
binlog-do-db=test 
#主机id 不能和从机id重复 
server-id=1 
#Master end

************************************************************************************

master的配置比较少,server-id是为这一组master/slave服务器定的唯一id,master/slave服务器中不能重复。在binlog-do-db中填写对象要同步的数据库,如果有多个,用逗号分隔,或再写一行如binlog-do-db=test2。日志也可以设置成绝对路径的。

 

配置Slave

同样在第二台机器上192.168.111.132找到配置文件my.ini。打开配置文件,在最下面添加如下配置:

*****************************************************************************

report-host = 192.168.111.78 
report-user = root 
report-password = root123 
log-bin = slave-bin.log 
replicate-do-db = test

server-id = 2

*****************************************************************************

这里需要添加master的IP,连接master的用户名和密码,生产环境中需要新建一个用户专门来处理replication,这里没有新建用户,用root做测试。端口没有配置,就是使用默认的3306,如果端口有变化,则通过report-port=?来配置。log-bin是记录日志的位置。

然后通过命令start slave来启动mysql的复制功能。如果在start slave过程中出现异常:

The server is not configured as slave; fix in config file or with CHANGE MASTER TO

可以通过下面语句解决:

change master to master_host='192.168.111.78 ',master_user='root',master_password='root123',master_log_file='master-bin.000001' ,master_log_pos=120;

使用show slave status 命令来查来看运行状态。特别关注两个属性,是否为“Yes”,如果都为“Yes”,则说明运行正常。

Slave_IO_Running:连接?主库,并读取主库的日志到本地,生成本地日志文件

Slave_SQL_Running:读取本地日志文件,并执行日志里的SQL命令。

 

同样的配置再在第三台机器上配置一下,server-id修改成3。重启slave和master的mysqld服务。然后测试,在三台服务器上都确保有数据库test,然后在master服务器的test数据库上建表和数据,之后再两台slave上面都会看见数?的同步。

 

Mysql的MasterSlave同步时通?二进制文件进行同步的。在Master端,你可以在C:ProgramDataMySQLMySQL Server 5.6data的master-bin.log日志文件里看见所有同步的sql脚本,master-bin.log是配置master时候输入的。在slave端,你可以在MySQL02-relay-bin类似的文件中找到日志。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: