dm.jdbc.driver.DMException网络通信异常的解决过程
浅浅~C 人气:0问题重述:
IDEA中项目启动不成功,达梦数据库连接不上,报网络通信异常与连接超时错误
报错:
1.dm.jdbc.driver.DMException: 网络通信异常
2.Caused by: java.net.SocketTimeoutException: connect timed out
3.ERROR : create connection SQLException, url: jdbc:dm://这里是我的Url, errorCode 6001, state 08S01
数据库中的错误
项目启动中的错误
问题背景:
今天让跑一个项目,跑不出来,一直报上述的错误,数据库网络通信异常以及连接超时。由于这个数据库是布置在对方的,连接得使用vpn,所以我单独在达梦数据库中测试数据库是否能跑通,结果可想而知,还是网络通信异常报6001.这时我又试试在dbeaver中能否跑通,结果还是跑不通,在搜索了相关博客,找到了一篇相对能解决问题的,在此感谢这位大佬登录EasyConnect后无法通过jdbc访问服务器数据库问题解决
用了大佬的方式。dbeaver 连接远程数据库成功了。在dbeaver上跑成功了,那在项目代码中因该就不会出现这个问题了。结果我重新启动项目报一样的错误。给孩子整绝望了,最后在我导的帮助下终于解决了
尝试解决过程:
1.首先排除了由于数据等输入错误的相关信息
2.使用达梦数据库验证是否能连接成功数据库-----》连接不成功,排除项目中的错误
3.使用上述博客方法,加入代码
-Djava.net.preferIPv4Stack=true
-------------------------------------------------------------------------------------------------------------------------------
4.查看程序代码的驱动包是否不兼容以及dbeaver和达梦的驱动包兼容----》兼容
5..在项目控制端使用telnet ip 端口号---》 验证网络通信是否正常
6.使用ping 命令验证网络是否通畅
7..因为数据库网络通信异常,尝试将远程的数据库换成本地的数据库-----》换成本地数据库跑成功;
8.尝试换一个环境重新运行,结果失败-----》验证了不是环境的问题
------》综上得出是达梦数据库的问题
---------------------------------------------------------------------------------------------------------------------------------
9.查看操作系统是否兼容(自己没尝试)
10.尝试用xshell访问对面的服务器地址(这里查看了后端项目部署的环境,确定是用的所需要的部署配置yml文件),访问成功----》排除了vpn的错误
11.尝试用xshell访问连接数据库(没来的急尝试)
最终解决方法:
参考上述博客,(上述博客仅在dbeaver中配置了语句)在项目中也应该配置这种语句,具体操作如下
配置完成后在启动成功解决上述报错
归纳原因:
在项目中,由于是通过vpn进行数据库访问的,所以会出现网络通信异常以及连接超时的问题。归结其原因是jdbc连接数据库与vpn访问之间的冲突
为什么要在dbeaver中配置了还得在idea中配置?
dbeaver本质是java程序,可以将其想象为虚拟机
springboot本质也是java程序,可以将其想象为虚拟机
添加话语:-Djava.net.preferIPv4Stack=true类似于在虚拟机上配置环境变量,保证虚拟机能正常运行
在项目vm option中配置,这里的VM就是指虚拟机
总结与强调:
在项目vm option在选项中配置一句-Djava.net.preferIPv4Stack=true 连接后就可以了。这句话配置不仅要在数据库中配置,还要在跑项目的环境中配置
加载全部内容