上篇文章提到了wamp环境下怎么安装两个数据库,那么window下配置MySQL主从复制就简单了。
步骤一:找到我们的主库下的my.ini文件,我的文件是在 D:\wamp64\bin\mysql\mysql5.7.14 目录下
修改我们的配置文件
[mysqld]
port = 3306
server-id=1 // 可自己定义不要与从库重复
log-bin=mysql-bin // 启用二进制日志
binlog-do-db=test // 需要配置的数据库
修改data目录下的auto.cnf 文件
修改 server-uuid 的值不要与从库重复(刚开始我没配这个后来一直报错),注意:修改后如果出现mysql服务不能启动,可以退出wamp重新打开试试
步骤二:找到我们的从库下的my.ini文件,我的文件是在 D:\wamp64\bin\mysql2\mysql5.7.14 目录下
修改我们的配置文件
[mysqld]
port = 3308
server-id=2 // 可自己定义不要与主库重复
log-bin=mysql-bin // 启用二进制日志
binlog-do-db=test // 需要配置的数据库
步骤三:重启两个数据库,从库的MySQL可以在上篇文章里提到的控制面板,服务里重启
步骤四:在主库里执行show slave status 命令查看file
步骤五:配置从服务器
执行
change master to master_host='127.0.0.1',master_user='root',master_password='',master_log_file='mysql-bin.00000',master_log_pos=308;
master_host为服务器地址,master_user为用户,当然也可以新建个用户,用新用户
Mysql>start slave; //启动从服务器复制功能
步骤六:检查从服务器的复制功能
show slave status\G
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.2.222 //主服务器地址
Master_User: mysync //授权帐户名,尽量避免使用root
Master_Port: 3306 //数据库端口,部分版本没有此行
Connect_Retry: 60
Master_Log_File: mysql-bin.000004
Read_Master_Log_Pos: 600 //#同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos
Relay_Log_File: ddte-relay-bin.000003
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000004
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。
以上操作过程,主从服务器配置完成。
步骤七:检查复制功能,在主库里添加修改数据,检查从库是否跟着变化
PS : 由于这个是在本地windows环境下做的测试,数据库的地址都是一样的,可项目中真正用到主从复制的时候,主从的地址是不一样的,比如laravel框架,本身就提供了主从复制,只需要把主从服务器的地址配置就行了
所以本地配置在实际开发中没什么意义,但可以作为以后生产环境配置的参考