使用命令配置主从复制出现主从机无法连接
在使用命令 slaveof host port 或者是 replicaof host port 命令配置redis主从复制时,从机出现master_link_status:down提示,显示主机是down的状态,并且使用 info replication 命令查看主机信息状态,主机显示没有从机挂载。
1,主机配置了密码,导致不能验证:
解决:使用 config get requirepass 查看主机的密码,在redis.conf配置文件中添加:requirepass xxx (设置redis登录密码)和
masterauth xxx(主从认证密码,否则主从不能同步),最后再重新在从机中使用命令slaveof 或 replicaof 建立主从关系。
2,主服务器绑定的IP与从服务器连接IP不一致:
在主服务器的redis.conf配置文件上绑定的 bind ip地址 表示可以那些机器可以访问:
设置为 0.0.0.0 表示都可以访问;如果是127.0.0.1 表示localhost访问;如果不设置从就没有访问主的权限
3,防火墙端口没有开启:
先使用命令 firewall-cmd --list-all 查看Linux开启的端口,添加redis的访问端口:firewall-cmd --add-port=6379/tcp(还可以加上参数 -- permanent,表示永久添加),最后重启防火墙 firewall-cmd --reload就可以了。
在使用docker安装redis5.0.5版本建立主从连机的一个小坑:
redis5.0.5的配置文件redis.conf中,没有slaveof这一项配置。
本人在配置全部完成后,依然不可建立连接,使用了各种方法后找到问题所在以及解决的办法:slaveof host port命令创建的主从连接无法正常连接(命令执行也不会报任何异常而是显示OK),但是 replicaof host port命令却可以正常连接!!