redis客户端在本地连接CentOS 7虚拟机的服务端时,为什么会报can't connect to redis-server 的错误?
1.你虚拟机上的防火墙没有关
2.端口没有开放
3.bind绑定ip的配置问题
解决办法:
1.注意:在CentOS 7中防火墙由firewalld来管理,
如果要添加范围例外端口 如 1000-2000
语法命令如下:启用区域端口和协议组合
firewall-cmd [--zone=<zone>] --add-port=<port>[-<port>]/<protocol> [--timeout=<seconds>]
此举将启用端口和协议的组合。端口可以是一个单独的端口 <port> 或者是一个端口范围 <port>-<port> 。协议可以是 tcp 或 udp。
实际命令如下:
firewall-cmd --permanent --add-port=6379/tcp
执行可以成功,返回success
【如果报错:firewalld is not running
则查看:https://jingyan.baidu.com/article/5552ef47f509bd518ffbc933.html】
用该命令查询firewall-cmd --permanent --query-port=6379/tcp
2.开放端口的配置要添加在:vim /etc/sysconfig/iptables-config 文末就可以了;
添加的内容: -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
3.原来是redis默认只能localhost登录,所以需要开启远程登录。
解决方法如下:
在redis的配置文件redis.conf中,找到bind 127.0.0.1,替换成0.0.0.0(这样不限制连接的ip,可以任意ip都可以连接此redis)。
bind 局域网IP 只能局域网内IP的机器访问, 本地localhost都无法访问。
总结:估计大家连接不通 遇到的终极问题 都是前两条,其他的问题,网上随便百度一下都可以解决了!
那么既然端口开放,防火墙关闭之后,客户端都可以连接了。我相信redis主从复制的问题也相应解决了,后期遇到难解决的 网上百度不到的问题 ,我都会归纳到自己博客里,,谢谢大家参考!