Java连接虚拟机的redis报错问题解决办法
来源:互联网 发布:网络系统集成课后答案 编辑:程序博客网 时间:2024/06/01 14:22
直奔主题,Java连接虚拟机报错,代码如下:
public class TestPing {
public static void main(String[] args) {
Jedis jedis = new Jedis("192.168.201.128", 6379);
System.out.println(jedis.ping());
}
}
运行报错,控制台信息如下:
Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed out
借鉴一些网友的解决方案:
关闭虚拟机的防火墙
1)暂时关闭防火墙:/etc/init.d/iptables stop
2) 重启虚拟机生效:chkconfig iptables off 或者 /sbin/chkconfig --level 2345 iptables off
楼主使用的是第二种方法,如下图所示:
重启虚拟机之后,在查看防火墙状态,如下图所示
继续运行上述代码,报错如下:
Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect
解决方案,修改redis.conf配置文件,将端口号127.0.0.1注释掉,这样任何IP都能访问,如下图所示:
保存退出后,运行代码,发现报错依旧,因为尚未启动redis服务,启动redis服务,如下图所示:
运行代码,此时报错如下:
上述exception大致意思是:拒绝redis在保护模式下运行的,没有绑定IP地址,没有授权密码,如果你想从外部电脑连接redis的话,你必须要采纳以下其中的某一个解决方法
楼主采用的第二种方法,修改redis.conf配置文件,将protected-mode yes 改为no,如下图所示
重启虚拟机,启动redis服务,如下图所示
运行代码,控制台输出PONG,如下图所示:
到此,问题解决。
题外话:我有个疑问就是防火墙和redis.conf配置文件里已经把IP注释了,为何会报红色的错误,经过网上查阅资料,发现其他网友也有类似问题,不过大部分人用的红色报错的第四种解决办法,在这里给出链接
- Java连接虚拟机的redis报错问题解决办法
- Java连接linux虚拟机的redis报错问题解决办法
- Java连接虚拟机的redis报错问题解决办法
- Java连接虚拟机的redis报错问题解决办法
- Java连接虚拟机的redis报错问题解决办法
- java连接Redis报错
- RedisDesktopManager无法连接虚拟机中启动的redis服务问题解决
- Java连接虚拟机linux环境下的redis时报错
- Java连接虚拟机的redis异常
- Java 连接虚拟机上的 redis
- 安装Ecshop首页出现报错常见的问题解决办法
- cocopods 一直报错找不到头文件的问题解决办法
- Log4j的知识点以及相关报错问题解决办法
- Genymotion无法启动虚拟机的问题解决办法
- java https连接以及乱码问题解决办法
- redis 连接报错
- ora-01536报错问题解决办法
- 调试xcode项目报错问题解决办法
- Zxing生成含有LOGO二维码
- spring常用的一些注解以及注解注入总结
- Java 网络编程
- 一张图说清楚进程和线程
- Linux内核链表的研究与应用
- Java连接虚拟机的redis报错问题解决办法
- 魔方阵
- MySQL-5.7.18 安装(MSI)
- java之策略模式
- for循环创建一维数组
- 深入浅出javascript数组
- python :基本数据结构:列表、元组及字典
- YOLO on TX1
- C++引用和指针的区别