Windows下Redis主从配置出现Writing to master:Unknow error
异常:Sending command to master in replication handshake: -Writing to master: Unknown error;
解决结论:
从数据库的slaveof所写的ip地址要和 主数据库的bind第一个参数相同;
解决过程:
一、当我在一台操作系统为win10的64位电脑上进行redis主从配置时,出现以上错误,死活连接不上,当时配置如下;
1、(master)配置redis.windows.conf
(1)bind 127.0.0.1 172.16.XX.XX(本台电脑ip)
(2)port 6379
2、(slave1)配置redis.windows6380.conf
(1)bind 127.0.0.1 172.16.XX.XX(本台电脑ip)
(2)port 6380
(3)slaveof 172.16.XX.XX(本台电脑ip) 6379
3、(slave2)配置redis.windows6381.conf
(1)bind 127.0.0.1 172.16.XX.XX(本台电脑ip)
(2)port 6381
(3)slaveof 172.16.XX.XX(本台电脑ip) 6379
4、然后先后启动
redis.server.exe redis.windows.conf
redis.server.exe redis.windows6380.conf
redis.server.exe redis.windows6381.conf
5、报以上异常
其中有一句错误是:Connecting to MASTER 172.16.xx.xx:6379
二、找出错误原因
1、根据错误信息可以看出,从数据库配置是没问题的,它就是连接了咱写好的主数据库的ip和端口
2、那问题就出在主数据库;
(1)ip地址是对的;
(2)我尝试过关闭所有的防火墙,依然连不上;
3、后来我想了是不是bind的原因
我把两个从数据库的slaveof 从172.16.xx.xx 6379 改成了 127.0.0.1 6379后,就连上了!
我认为,从数据库的slaveof要和主数据库的bind第一个参数相同!
4、证实想法
(1)我把主数据库的bind改成172.16.xx.xx
(2)两个从数据库的slaveof 改成 172.16.xx.xx 6379
(3)连接成功;
三、用两台windows系统的电脑进行redis主从配置
0、关了防火墙
1、主数据库
(1)bind 0.0.0.0
2、从数据库
(2)slaveof 主数据库的ip 端口
3、连接成功