linux-centos7 服务器上redis服务已经启动,但是宿主机无法访问,报错:connect timeout
1.报错信息:
redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed out
at redis.clients.jedis.Connection.connect(Connection.java:207)
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:93)
at redis.clients.jedis.Connection.sendCommand(Connection.java:126)
at redis.clients.jedis.BinaryClient.select(BinaryClient.java:176)
at redis.clients.jedis.BinaryJedis.select(BinaryJedis.java:522)
at org.example.JedisTest.setup(JedisTest.java:27)
at java.lang.reflect.Method.invoke(Method.java:498)
at java.util.ArrayList.forEach(ArrayList.java:1259)
at java.util.ArrayList.forEach(ArrayList.java:1259)
Caused by: java.net.SocketTimeoutException: connect timed out
2.检查虚拟机上(centos7)redis配置是否正确,是否启动成功
cd /usr/local/src/redis-6.2.6
#检查配置,不确定就删了,用备份的文件重新改一遍
vim redis.conf
bind 0.0.0.0
port 6379
protected-mode no
#重启redis
systemctl restart redis
#测试连接
redis-cli -h 127.0.0.1 -p 6379 -a 123456
ping
#测试通过后如果本地还是无法连接到redis,考虑是防火墙没有允许redis的端口,允许redis所 在端口
sudo firewall-cmd --permanent --add-port=6379/tcp
sudo firewall-cmd --reload
3.如果以上操作还是没有让本地连接到服务器上的redis,本地启动cmd窗口,ping一下redis所在服务器,看是否联通,以及看一下服务器时区和本地的时区是否一致,命令如下:
查看当前时区:
timedatectl
列出可用的时区:
timedatectl list-timezones
设置时区: 例如,将时区设置为中国标准时间(Asia/Shanghai):
sudo timedatectl set-timezone Asia/Shanghai