java项目连接数据库报错create connection SQLException

wujinwen1919 2018-05-03 01:06:40
2018-05-02 22:13:47.19 | create connection SQLException,
url: jdbc:mysql://XXXXXXXXX?serverTimezone=Hongkong&useUnicode=true&characterEncoding=utf8&useSSL=false&autoReconnect=true&useServerPrepStmts=true, errorCode 0, state 08001

java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:108)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:87)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:61)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:71)
at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:932)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:857)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:444)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:230)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:226)
at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2466)
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: 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)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:59)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:103)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:149)
at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:165)
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:92)
at com.mysql.cj.NativeSession.connect(NativeSession.java:152)
at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:876)
... 10 more
Caused by: java.net.SocketException: No buffer space available (maximum connections reached?): connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:173)
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:66)
... 12 more

大家帮忙看下,项目放在服务器上,启动tomcat后启不起来,谢谢大家!
...全文
23033 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_51378275 2021-05-14
  • 打赏
  • 举报
回复
我也遇到过,是因为粗心把数据库名写错了
迷洛 2021-03-25
  • 打赏
  • 举报
回复
大佬们,这个问题解决了吗,我也遇到了
西贝056 2021-01-29
  • 打赏
  • 举报
回复
解决了吗,我也遇到了
FxxkLogin 2019-08-24
  • 打赏
  • 举报
回复 1
今天遇见这个同样的问题,连接的时候报错,`com.alibaba.druid.pool.DruidDataSource,init datasource error, errorCode 0, state 08001` 进过一番查询,最后发现是数据库连接驱动版本的问题,根据[DRDS官方文档说明](https://help.aliyun.com/document_detail/117762.html),DRDS实例mysql版本为5.X,因此如果使用了高版本的mysql驱动,是无法进行连接的。 最后的修改方案: ```xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.45</version> </dependency> ```
wzq603 2018-10-30
  • 打赏
  • 举报
回复
Caused by: java.net.SocketException: No buffer space available (maximum connections reached?): connect 没有可用的缓冲区空间(达到最大连接数?)
maradona1984 2018-05-07
  • 打赏
  • 举报
回复
这个跟你描述的场景很相似 https://blog.csdn.net/yzy199391/article/details/78911329 如果这个不是,那得一步一步排查了,个人觉得跟服务器相关性比较大 连接池设置大点(估计没啥用,该用完还是用完),druid自带监控,自己百度加进去,检查连接池是否泄漏,然后再数据库连接是否够用 你这tomcat重启之后起不来,首先你得判断tomcat的进程是否真的关闭了,然后再查下是否真的存在连接
unclezh0730 2018-05-07
  • 打赏
  • 举报
回复
说一个比较坑的点:就是让你的数据库连接驱动版本和你的数据库版本保持一致,我曾经因为这个原因debug了一晚上。最骚的是,不一致的时候,我的测试用例是可以正常测试的,然后到tomcat启动就不行。。。。报各种不知名错误
csdn_peter 2018-05-03
  • 打赏
  • 举报
回复
引用 9 楼 lynmison 的回复:
没用过阿里巴巴数据库组件,但数据库访问从原理上而言,都应该开启连接,关闭连接。 如下: Connection conn = dataSource.getConnection(); //数据库操作 conn.close();
他的关闭连接其实是归还连接到druid连接池中
天行归来 2018-05-03
  • 打赏
  • 举报
回复
没用过阿里巴巴数据库组件,但数据库访问从原理上而言,都应该开启连接,关闭连接。 如下: Connection conn = dataSource.getConnection(); //数据库操作 conn.close();
wujinwen1919 2018-05-03
  • 打赏
  • 举报
回复
连接是用阿里巴巴的连接池
天行归来 2018-05-03
  • 打赏
  • 举报
回复
异常后,检查下mysql的连接数,是不是你连接没释放导致。
wujinwen1919 2018-05-03
  • 打赏
  • 举报
回复
本地登录完全正常,没有什么问题,就是在服务器上运行一段时间后,就会有这样的问题,考虑可能跟服务器的配置有关系
wujinwen1919 2018-05-03
  • 打赏
  • 举报
回复
【【【问题补充】】】】 数据库连接:driverClassName=com.mysql.cj.jdbc.Driver mysql版本:5.7 jdk:1.8 问题描述:隔一段时间就会报异常如下异常,但系统能使用;tomcat停了发布系统后就起动不了了
Geray-zsg 2021-06-30
  • 举报
回复
@wujinwen1919 这个问题怎么解决呢
诺丽果 2018-05-03
  • 打赏
  • 举报
回复
使用本地数据库客户端连接试一下,看是否能登陆,顺便,两个楼上说得对
wujinwen1919 2018-05-03
  • 打赏
  • 举报
回复
【【【问题补充2】】】】 重启服务器,启动tomcat后,项目又可以正常使用了
戎码一生灬 2018-05-03
  • 打赏
  • 举报
回复
检查你的连接地址,登陆账户,密码,以及账户权限
天行归来 2018-05-03
  • 打赏
  • 举报
回复
有几种可能导致 1、mysql是否所分配的帐号允许远程连接 2、端口是否正确,默认端口3306 3、防火墙 可以用telnet先测试下数据库端口服务是否正常

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧