开发者社区> IT觅语> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

java程序启动连接mysql时报错com.mysql.jdbc.exceptions.jdbc4.CommunicationsExcepti:Communications link failur

简介: java程序启动连接mysql时报错com.mysql.jdbc.exceptions.jdbc4.CommunicationsExcepti:Communications link failur
+关注继续查看

问题描述:

报错如下:

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

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_275]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_275]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_275]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_275]
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) ~[mysql-connector-java-5.1.46.jar!/:5.1.46]
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990) ~[mysql-connector-java-5.1.46.jar!/:5.1.46]
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:342) ~[mysql-connector-java-5.1.46.jar!/:5.1.46]
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2188) ~[mysql-connector-java-5.1.46.jar!/:5.1.46]
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2221) ~[mysql-connector-java-5.1.46.jar!/:5.1.46]
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2016) ~[mysql-connector-java-5.1.46.jar!/:5.1.46]
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:776) ~[mysql-connector-java-5.1.46.jar!/:5.1.46]
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) ~[mysql-connector-java-5.1.46.jar!/:5.1.46]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_275]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_275]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_275]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_275]
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) ~[mysql-connector-java-5.1.46.jar!/:5.1.46]
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386) ~[mysql-connector-java-5.1.46.jar!/:5.1.46]
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330) ~[mysql-connector-java-5.1.46.jar!/:5.1.46]
...

解决方案:

解决方案1:
如mysql版本是 5.7 驱动使用的是 com.mysql.jdbc.Driver

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/demo?useSSL=true&useUnicode=true&characterEncoding=UTF-8

原因:useSSL=true时 数据库连接 安全认证不通过

解决方案:将useSSL true改为false

解决方案2:

更换JDBC驱动:使用:com.mysql.cj.jdbc.Driver (需注意:需要指定时区serverTimezone:)

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/demo?useSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java连接MySQL数据库。编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计。
Java连接MySQL数据库。编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计。
0 0
Java连接访问MySQL数据
本文通过mysql-connector-java连接并访问MySQL数据。
0 0
Java连接各种数据库操作(mysql、oracle、postgresql、gbase、mongo)
Java连接各种数据库操作(mysql、oracle、postgresql、gbase、mongo)
0 0
java使用jdbc连接ResultSet通过next()取不到第一条数据
java使用jdbc连接ResultSet通过next()取不到第一条数据
0 0
Java 通过jdbc连接并使用postgre获取数据
Java 通过jdbc连接并使用postgre获取数据
0 0
mysql:Java通过驱动包(jar包)连接MySQL数据库---步骤总结及验证
mysql:Java通过驱动包(jar包)连接MySQL数据库---步骤总结及验证
0 0
在项目中使用Curator的Java 客户端搭建后进行长TCP连接和TCP权限配置【Zookeeper】
在项目中使用Curator的Java 客户端搭建后进行长TCP连接和TCP权限配置【Zookeeper】
0 0
Java连接Access数据库改成MySQL连接数据库
升级诉求:Java连接Access已经算是过时的产物了,一般作为存储服务的应用在Java界比较常用的还是MySQL, 当然还有Oracle数据库。这里要讲的就是连接MySQL数据库了。 就是因为有了SQL标准,各大厂商实现SQL语句基本上大同小异, 所以我们从Access平稳的切换到MySQL数据库也比较方便快捷, 那如何进行Access数据库切换成MySQL数据呢? 下文就是指导手册了,如有问题可以联系作者一同探讨哟~
0 0
Java连接Zookeeper
Java操作Zookeeper很简单,但是前提要把包导对。 关于Zookeeper的Linux环境搭建可以参考我的这篇博客:Linux环境下Zookeeper安装 下面进入正题: 一、导入依赖 4.
1750 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
JAVA 应用排查全景图
立即下载
Java工程师必读手册
立即下载
Java应用提速(速度与激情)
立即下载