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

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_2\Extensions目录的mysql

image.png

2.修改配置

image.png

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;

image.png

配置成功~

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_2\Extensions\MySQL5.7.26_bak\data\auto.cnf
启动我们的从库,由于不能通过phpstudy启动从库,需要手动命令行启动,或者双击,推荐命令行,双击看不到错误信息。进入D:\phpstudy_pro_2\Extensions\MySQL5.7.26_bak\bin目录,执行命令.\mysqld --console

image.png

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

#主重复制 从库 删除 MySQL5.7.26_bak\data\auto.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,以后只用这个只读的用户连接从库,就实现了读写分离了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容