Mysql5.7 主从复制(phpstudy环境)

阿里云教程3个月前发布
22 0 0

Windows环境搭建主从复制,目前公司有个要求,两台Windows server服务器,要做一个备份服务器,说是mysql要搞个主重复制,想着本地跑一个吧。本地是PHPstudy,我就想着复制一份,主服务器是Mysql5.7 127.0.0.1:3306连接,从服务器按道理要选不同电脑,我就本地模拟下,用198.168.x.x的本地lp,配合3307端口模拟实现吧。

默认初始的时候主从的数据要一样的,不然复制的时候如果两张表列如主键id不一致,导致同步ID,不一致,应为是监听的binlog日志,只有开启之后的日志才能监听到。

1.准备Mysql,这里我直接用D:phpstudy_pro_2Extensions目录的mysql

Mysql5.7 主从复制(phpstudy环境)

2.修改配置

Mysql5.7 主从复制(phpstudy环境)

3.主库操作

在主mysql中创建账号 用于数据同步,我这里创建了无限制的账号,phpstudy启动主库,直接使用navicate连接mysql3306,不用选择数据库,直接新建查询。

-- 创建无IP限制的用户(% 表明任意主机)
CREATE USER  repl @ %  IDENTIFIED BY  repl_password ;

-- 授予复制权限
GRANT REPLICATION SLAVE ON *.* TO  repl @ % ;

-- 刷新权限使更改生效
FLUSH PRIVILEGES;

正常可以加个限制IPCREATE USER repl @ 192.168.1.% IDENTIFIED BY repl_password ;这种
输入SHOW MASTER STATUS;

Mysql5.7 主从复制(phpstudy环境)

配置成功~

4.从库操作

用于是复制的,这里的server_id必定要删除。还有server_idserver-id都能被正确识别。

read_rnd_buffer_size=4M
server_id=1
skip-external-locking=on

删除从库的server-uuid,即删除从库的auto.cnf,我是复制的,两个mysql是一样的,重新启动的时候如果没有会自动生成 auto.cnf 详细参考位置D:phpstudy_pro_2ExtensionsMySQL5.7.26_bakdataauto.cnf
启动我们的从库,由于不能通过phpstudy启动从库,需要手动命令行启动,或者双击,推荐命令行,双击看不到错误信息。进入D:phpstudy_pro_2ExtensionsMySQL5.7.26_bakin目录,执行命令.mysqld --console

Mysql5.7 主从复制(phpstudy环境)

从库启动成功~接下啦连接navicate,新建连接,连接到3307这个从库。

#主重复制 从库 删除 MySQL5.7.26_bakdataauto.cnf 修改server-id=2
STOP SLAVE;
RESET SLAVE ALL;  -- 清除所有复制配置
# file 和pos来着主库
CHANGE MASTER TO
    MASTER_HOST= 192.168.124.126 ,
    MASTER_USER= repl ,
    MASTER_PASSWORD= repl_password ,
    MASTER_LOG_FILE= mysql-bin.000003 ,
    MASTER_LOG_POS=154;

START SLAVE;

MASTER_LOG_FILE= mysql-bin.000003 ,
MASTER_LOG_POS=154;这两项的值需要填写主库的运行sqlSHOW MASTER STATUS;查询结果的值。

实则也很简单,最后测试一下即可,修改主库的数据,从库会默认同步,即成功部署主从复制,还是蛮简单的,最好在3307建一个只读的user,后来只用这个只读的用户连接从库,就实现了读写分离了。

© 版权声明

相关文章

暂无评论

none
暂无评论...