编程知识 cdmana.com

记录:com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure...【亲测有效】

作者:bug菌

️博客:CSDN掘金

公众号:猿圈奇妙屋

特别声明:原创不易,转载请附上原文出处链接和本文声明,谢谢配合。

版权声明:文章里可能部分文字或者图片来源于互联网或者百度百科,如有侵权请联系bug菌处理。

一、前言

环境:jdk1.8 +mysql 5.6 + 阿里云centos7.6 

二、报错内容

报错完整截图:

com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

三、报错排查

        很离谱,我本地开发与线上测试环境共用一个数据库,上一秒还在本地开发好好的,为何打了个jar包,运行也就报数据库通讯连接故障。我仔细核对了数据库连接等配置信息,与本地完全一致,然后也排查了本地与线上ip及端口,都是能访问的。navicat连接也正常。讲道理,不可能存在问题啊,但是拒绝访问,百思不得其解。 

        我再把该jar在本地运行,也是正常的。

        然后我脑洞突然清奇了一下,该不会是该数据库没有开启远程连接吧?虽然我使用的该服务器ip加端口号,但是数据库如果未开通远程连接,ip它是不认的,只认localhost 与 127.0.0.1,这时我才反应过来,于是我立马去查看了现有用户,密码及允许连接的主机,果不其然,Host对应的就只有localhost 与 127.0.0.1这两,难怪我用ip访问不上。大家可以参考文末的附录。

四、解决方案

        将ip改成localhost,但这只适用于mysql服务与你部署的后端服务在一台云主机上才行。要不然改成localhost  也于事无补。

        再重新执行启动命令启动一下。

        看到了控制台打印秒数,我就知道,报错果然是ip的问题,虽然不是很难被发现,排查一下问题也容易发现问题点,但是如果你看了我写的,我相信你能在第一时间定位问题并解决问题,这就是看了这篇文章能带给你的东西。

五、附录

这里多设置了一行host为%。%这里表示的是允许任意host访问。但一般不建议这么设置奥,比较危险,谨慎操作。

        ... ...

         好啦,以上就是的通过java实现获取客户端ip的全部教学啦。如果对你有所帮助,还请不要忘记给bug菌[ 三连支持 ]哟。如果想获得更多的学习资源或者想和更多的技术爱好者一起交流,可以关注我的公众号『猿圈奇妙屋』,后台回复关键词领取学习资料、大厂面经、面试模板等海量资源,就等你来拿。


六、文末

        如果你还想要学习更多,小伙伴们大可关注bug菌专门为你们创建的专栏《bug调优》,都是我一手打下的江山,持续更新中,希望能帮助到更多小伙伴们。

       我是bug菌,一名想走出大山改变命运的程序猿。接下来的路还很长,都等待着我们去突破、去挑战。来吧,小伙伴们,我们一起加油!未来皆可期,fighting!

        最后送大家两句我很喜欢的话,与诸君共勉!


️做你想做的人,没有时间限制,只要愿意,什么时候都可以start。

你能从现在开始改变,也可以一成不变,这件事,没有规矩可言,你可以活出最精彩的自己。


​​​

如果文章对您有所帮助,就请留下您的吧!(#^.^#);

如果喜欢bug菌分享的文章,就请给bug菌点个关注吧!(๑′ᴗ‵๑)づ╭~;

如果对文章有任何疑问,还请文末留言或者加群吧【QQ交流群:708072830】;

鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复参与讨论(请勿发表攻击言论,谢谢);

版权声明:原创不易,转载请附上原文出处链接和本文声明,版权所有,盗版必究!!!谢谢。

版权声明
本文为[bug菌¹]所创,转载请带上原文链接,感谢
https://luoyong.blog.csdn.net/article/details/123930125

Scroll to Top