windows环境下 Mysql主从配置

Mysql版本:5.5.53
Master:master 172.16.112.21
Slave:slave 172.16.112.7

Master配置:
一、配置my.ini

[mysqld]
 server-id = 1   #服务器的唯一ID号,主从之间不能冲突,默认是1
 log-bin   = mysql-bin   #启动binlog 日志功能。也称事务日志
 binlog-format = mixed   #日志的记录格式,默认是mixed,推荐也是用这个

在这里插入图片描述
二、配置给从库Slave服务器使用的账号

#创建账号,我测试环境的从服务器的IP地址就是172.16.112.7,你们自己做的时候根据自己的从服务器IP来写,(cmd 查看服务器IP : ipconfig)
#账号名可以随意取

CREATE USER 'test'@'172.16.112.7' IDENTIFIED BY '密码'; 
GRANT REPLICATION SLAVE ON *.* TO 'test'@'172.16.112.7'; #添加权限
FLUSH PRIVILEGES;  #刷新权限,立马生效

在这里插入图片描述

三、查看当前日志状态

SHOW MASTER STATUS; #查看主服务器的状态,并记录 File和Position字段,从服务器要使用到

在这里插入图片描述

Slave配置:
一、配置my.ini

[mysqld]
server-id = 2  #服务器唯一ID号,不要冲突
log-bin   = mysql-bin  #启动binlog日志功能,也称事务日志
binlog-format = mixed  #可以不用配置,因为默认值 就是mixed,在没有配置log-bin时,这个值并不生效
 
#从库的本地事务日志更新,默认从主库同步过来的操作记录并不写入从库的本地事务日志,
#会影响到我们在从库上做 事务日志 备份功能,此处开启
#如果不会在从库上做事务日志备份(增量备份)功能,建议不开启,减少磁盘IO
log-slave-updates = 1  

二、添加主库信息
这里的 MASTER_LOG_FILE 和 MASTER_LOG_POS 就是刚主数据库中查看出来的结果
我测试环境主库的IP是172.16.112.21

CHANGE MASTER TO 
MASTER_HOST='172.16.112.21',MASTER_PORT=3306,MASTER_USER='test',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=710;

三、启动从库复制功能

START SLAVE; #启动从复制功能

STOP SLAVE; #停止从复制功能的命令

RESET SLAVE; #重置从复制功能的配置,会清除 master.inforelay-log.info 两个文件

四、查看从库复制功能状态
SHOW SLAVE STATUS\G #加\G显示效果好一些,防止列过多,一屏显示不下时的排序混乱

在这里插入图片描述
OK 。 就可以去主数据库更新数据了!!!

常见问题

error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.

mysql 5.6的复制引入了uuid的概念,各个复制结构中的server_uuid得保证不一样,但是查看到直接copy data文件夹后server_uuid是相同的,show variables like ‘%server_uuid%’;

解决方法:

找到data文件夹下的auto.cnf文件,删除 . 重启db自动重新生成auto.cnf文件

参考博客 https://blog.csdn.net/zhengchaooo/article/details/79767991


猜你喜欢

转载自blog.csdn.net/ZhangYuXin_/article/details/88418634