这个周末自己在家玩Redis,到了今天玩主从复制就出现了问题,问题是从服务器一直访问不了主服务器。下面是报错
32677:S 08 Feb 16:14:38.947 * Connecting to MASTER 172.168.10.70:6379
32677:S 08 Feb 16:14:38.948 * MASTER <-> SLAVE sync started
32677:S 08 Feb 16:14:38.948 # Error condition on socket for SYNC: Connection refused
32677:S 08 Feb 16:14:39.950 * Connecting to MASTER 172.168.10.70:6379
32677:S 08 Feb 16:14:39.950 * MASTER <-> SLAVE sync started
32677:S 08 Feb 16:14:39.950 # Error condition on socket for SYNC: Connection refused
32677:S 08 Feb 16:14:40.952 * Connecting to MASTER 172.168.10.70:6379
32677:S 08 Feb 16:14:40.952 * MASTER <-> SLAVE sync started
32677:S 08 Feb 16:14:40.953 # Error condition on socket for SYNC: Connection refused
有些同学可能说将daemonize设置为yes,启动的时候看不到日志,但是你可以在主服务器敲打下面的命令看主从信息,r如果connected_salves的数量为0,那么就是主从没成功。
info replication
尝试了好多解决方法,最后这个是成功的,原因出在主服务器的redis.conf配置文件上。因为我主服务器绑定的IP是127.0.0.1,
bind 127.0.0.1
但是从服务器的slaveof都是写明白主服务器的ip加端口的,所以当从服务器访问主服务器的时候,可能被过滤掉了
salveof 192.168.123.11 6379
所以我们需要修改主服务器的redis.conf配置文件,改为下面这个:
bind 0.0.0.0
还可以改成下面的,注意192.168.123.11是主服务器的IP地址:
bind 127.0.0.1 192.168.123.11