数据库mysql连接不上的问题 20C

错误日志如下图:
org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Could not open connection
at org.springframework.orm.hibernate4.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:516)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:372)
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:417)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:255)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at com.sun.proxy.$Proxy71.getMenuByCode(Unknown Source)
at com.xmt.wcms.serviceWrap.impl.WcMenuServiceWrap.getMenuByCode(WcMenuServiceWrap.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.taobao.hsf.remoting.provider.ProviderProcessor.handleRequest0(ProviderProcessor.java:497)
at com.taobao.hsf.remoting.provider.ProviderProcessor.handleRequest(ProviderProcessor.java:168)
at com.taobao.hsf.remoting.server.RPCServerHandler.handleRequest(RPCServerHandler.java:44)
at com.taobao.hsf.remoting.server.RPCServerHandler.handleRequest(RPCServerHandler.java:1)
at com.taobao.hsf.remoting.netty.server.handler.NettyServerHandler$HandlerRunnable.run(NettyServerHandler.java:116)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.hibernate.exception.GenericJDBCException: Could not open connection
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:124)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:109)
at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:221)
at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:157)
at org.hibernate.internal.SessionImpl.connection(SessionImpl.java:427)
at org.springframework.orm.hibernate4.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:429)
... 22 more
Caused by: java.sql.SQLException: Cannot create PoolableConnectionFactory (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 org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2294)
at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2039)
at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1533)
at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:141)
at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:301)
at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:214)
... 25 more
Caused by: 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)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:989)
at com.mysql.jdbc.MysqlIO.(MysqlIO.java:341)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2192)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2225)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2024)
at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:779)
at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
at org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:39)
at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:256)
at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2304)
at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2290)
... 30 more
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:211)
at com.mysql.jdbc.MysqlIO.(MysqlIO.java:300)
... 46 more

10个回答

数据库根本就没有连上,检查下你数据库连接字符串里的服务器地址、端口号,你mysql所在的机器是否联网,是否在防火墙允许端口,是否和客户端在一个局域网,还有你mysql是否安装配置正确处于运行的状态。

qq_27621605
qq_27621605 重启服务器试试
大约 2 年之前 回复
chenyishen24
chenyishen24 我连接的是本地数据库,用客户端工具去查看数据,可以连接得上,我是拿最新的代码在本地跑,上一个版本的代码,运行没问题
大约 2 年之前 回复

mysql是否是本地服务器,如果不是的话有没有配置访问权限:
mysql>GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '_**password**_' WITH GRANT OPTION;
FLUSH PRIVILEGES;

chenyishen24
chenyishen24 我连接的是本地数据库,用客户端工具去查看数据,可以连接得上
大约 2 年之前 回复

本地先ping ip地址,telnet ip 端口号,如果没问题,自己用本地数据客户端连接,看看用户名密码是正确吗?

chenyishen24
chenyishen24 我连接的是本地数据库,用客户端工具去查看数据,可以连接得上,不是用户名密码的问题
大约 2 年之前 回复

使用Navicat连接一下试试,看看什么提示

chenyishen24
chenyishen24 我代码利用sourcetree克隆git上的项目代码到本地,出现前端调用服务端,服务端调用数据库出现连接问题,导致hsf线程异常,所以前端迟迟没有获取到返回的值,出现超时问题。。。。。在数据库,maven不变的情况下,我不用来自sourcetree的代码,而是从同事那边拷贝项目代码(跟sourcetree的代码本质是一样的),却不会出现这种情况。
大约 2 年之前 回复
xcgh
xcgh 查一下就这一个项目连接数据库吧,如果是多个,是不是连接不够了
大约 2 年之前 回复
chenyishen24
chenyishen24 我连接的是本地数据库,用客户端工具去查看数据,可以连接得上,不是这个原因
大约 2 年之前 回复

首先来排查下问题
从上面看数据库没有连接,首先看看网络是否通,然后看看通过工具是不是直接能连接到数据库,如果可以 那么说明通信没问题,然后查看自己代码,
jar包啦 说明的 祝你早点解决

chenyishen24
chenyishen24 我代码利用sourcetree克隆git上的项目代码到本地,出现前端调用服务端,服务端调用数据库出现连接问题,导致hsf线程异常,所以前端迟迟没有获取到返回的值,出现超时问题。。。。。在数据库,maven不变的情况下,我不用来自sourcetree的代码,而是从同事那边拷贝项目代码(跟sourcetree的代码本质是一样的),却不会出现这种情况。
大约 2 年之前 回复
qq_36546907
不忘初心方得始终小飞哥 回复chenyishen24: 然后看看Hibernate 连接数代码是否正确,建立连接出问题,有时候是代码也有错
大约 2 年之前 回复
qq_36546907
不忘初心方得始终小飞哥 回复chenyishen24: 如果是通过本地的工具连接到服务器数据库是没问题的,那么说明网络没问题
大约 2 年之前 回复
qq_22175485
狼狂人 回复chenyishen24: 通过cmd命令:telnet ip地址 端口号
大约 2 年之前 回复
chenyishen24
chenyishen24 试过把maven本地仓库的jar包删除,重新编译,工具能够查询到本地库的数据,如何看网络是否通?
大约 2 年之前 回复

如果你的mysql 使用的 是php自带的 那么需要打开phpstudy服务器 启动mysql

chenyishen24
chenyishen24 不是php 是java、
大约 2 年之前 回复

既然是这样,之前我也出现这问题,你可以试试,首先确保你的配置文件的数据库名称和用户名密码正确(不要有空格之类的),想到可能db.properties中数据库的连接虽然在myeclipse配置改了,但没有实际到编辑的目录classes中,打开该文件下,有这个文件,且内容正确。还有就是jar包问题

fuweihua123
fuweihua123 回复chenyishen24: 删除项目中的如下包文件:项目名/webapp/WEB-INF/classes包、项目名/.settings、项目名/target/、项目名/bin/、项目名/.*(这里.*包括.classpath 、.project也都删除)等文件,
大约 2 年之前 回复
chenyishen24
chenyishen24 我代码利用sourcetree克隆git上的项目代码到本地,出现前端调用服务端,服务端调用数据库出现连接问题,导致hsf线程异常,所以前端迟迟没有获取到返回的值,出现超时问题。。。。。在数据库,maven不变的情况下,我不用来自sourcetree的代码,而是从同事那边拷贝项目代码(跟sourcetree的代码本质是一样的),却不会出现这种情况。
大约 2 年之前 回复

看了你的几次回复,了解到你可以通过客户端工具连接数据库,说明数据库服务及网络环境应该是正常的。建议先在项目中写一段测试代码,用原生的
jdbc来连接,注意jdk版本和mysql驱动程序jar包的版本和完整性,必要时可以更换jdk和mysql驱动程序jar包,看是否可以通过原生jdbc来连接。如果能连接,则检查下项目中用到的数据源包(诸如dbcp、c3p0之类)的配置及jar包版本。剩下的就是ORM持久层框架的配置和jar包问题的排查(诸如Hibernate等)。逐一排查,应该可以解决问题。

chenyishen24
chenyishen24 我代码利用sourcetree克隆git上的项目代码到本地,出现前端调用服务端,服务端调用数据库出现连接问题,导致hsf线程异常,所以前端迟迟没有获取到返回的值,出现超时问题。。。。。在数据库,maven不变的情况下,我不用来自sourcetree的代码,而是从同事那边拷贝项目代码(跟sourcetree的代码本质是一样的),却不会出现这种情况。
大约 2 年之前 回复

确认下你连接本地数据库是指的数据库服务器和你的应用程序在同一台服务器上么?如果不是同一台服务器,首先看下mysql对应用服务器ip是否有授权;在应用服务器上安装mysql客户端,用mysql客户端连接mysql服务器试下能否正常连接,如果能不能正常连接,请查看下应用程序的配置或者相关的包

chenyishen24
chenyishen24 我代码利用sourcetree克隆git上的项目代码到本地,出现前端调用服务端,服务端调用数据库出现连接问题,导致hsf线程异常,所以前端迟迟没有获取到返回的值,出现超时问题。。。。。在数据库,maven不变的情况下,我不用来自sourcetree的代码,而是从同事那边拷贝项目代码(跟sourcetree的代码本质是一样的),却不会出现这种情况。
大约 2 年之前 回复

我代码利用sourcetree克隆git上的项目代码到本地,出现前端调用服务端,服务端调用数据库出现连接问题,导致hsf线程异常,所以前端迟迟没有获取到返回的值,出现超时问题。。。。。在数据库,maven不变的情况下,我不用来自sourcetree的代码,而是从同事那边拷贝项目代码(跟sourcetree的代码本质是一样的),却不会出现这种情况。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问