window 环境下 同一台机器 mysql 主从设置
1.环境介绍
windows10系统
主库 mysql 5.7
从库 mysql 8.0
当主从库版本不一致时,建议从低版本同步至高版本,这样能避免不必要的语法错误;
先进行数据初始化同步,将主库数据全部同步到备库
2.主库设置
2.1.查看bin 日志是否开启
如果Value 为 OFF 则未开启日志文件
show variables like 'log_bin';
2.2.开启bin 日志
binlog_do_db 同步的数据库
server-id=1
log-bin = D:/data/mysql/logs/mysql57/master-bin.log
log_bin_index = D:/data/mysql/logs/mysql57/master-bin.index
expire-logs-days = 14
max-binlog-size = 500M
binlog_do_db=localscm
2.3.重启mysql服务
net stop mysql57 --停止服务
net start mysql57 --开启服务
2.4.重新查看bin 日志是否开启
Value 为 ON即可
show variables like 'log_bin';
2.5.查询主库状态
show binlog events; --查询binlog 变动信息
show master status; --查看主库 状态--
2.6.主库创建用户
create user test identified by '123456'
grant replication slave on *.* to 'test'@'%'
flush privileges;
到此,不要对主库进行操作;
3.备库设置
3.1.配置文件设置
server-id=2
log-bin=D:/data/mysql/logs/mysql/slave-bin.log
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index
3.2.主从关联设置
(master_log_file,master_log_pos 根据 主库 show master status; 显示信息设置)
change master to master_host='127.0.0.1',master_port=3336,master_user='test',master_password='123456',master_log_file='master-bin.000002',master_log_pos=154;
start slave;--开启服务 stop slave; 关闭服务
3.3.显示备库状态
show slave status;
以下两个字段为YES才是正常的,如果不是可以查看Last_Error字段显示的报错信息
Slave_IO_Running YES
Slave_SQL_Running YES
4.意外
在第二部第3步,一直报错 Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids;这个报错是说server-id,主从库设置的是一样的;
但是在配置文件my.ini 里明显设置的是不一样的;
通过以下命令查询server-id 编号,确实一直,将从库设置为2,重新查看备库状态,显示正常
show GLOBAL variables like '%server%'; --查询server-id 编号
show GLOBAL variables like '%log%'; --查询日志设置
set GLOBAL server_id=2
5.测试
delete from test where id=123456;
从库也删除了,测试正常;