mysql jdbc连接失败错误

时间:2016-05-18 01:50:16

标签: java mysql hibernate

我们在aws上部署了基于rest api的应用程序,有时会抛出以下错误:

  

引起:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:   从服务器成功收到的最后一个数据包是66,711,586   几毫秒之前。成功发送到服务器的最后一个数据包是   66,711,586毫秒之前。比配置的服务器长   'wait_timeout'的值。你应该考虑到期和/或   在您的应用程序中使用前测试连接有效性,增加   服务器配置的客户端超时值,或使用   连接器/ J连接属性'autoReconnect = true'以避免这种情况   问题。在   sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)   〜[na:1.7.0_85] at   sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)   〜[na:1.7.0_85] at   sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)   〜[na:1.7.0_85] at   java.lang.reflect.Constructor.newInstance(Constructor.java:526)   〜[na:1.7.0_85] at   com.mysql.jdbc.Util.handleNewInstance(Util.java:411)   〜[mysql-connector-java-5.1.27.jar:na] at   com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1121)   〜[mysql-connector-java-5.1.27.jar:na] at   com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3988)   〜[mysql-connector-java-5.1.27.jar:na] at   com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2598)   〜[mysql-connector-java-5.1.27.jar:na] at   com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2778)   〜[mysql-connector-java-5.1.27.jar:na] at   com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2819)   〜[mysql-connector-java-5.1.27.jar:na] at   com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:5346)   〜[mysql-connector-java-5.1.27.jar:na] at   org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:371)   〜[commons-dbcp-1.4.jar:1.4] at   org.apache.commons.dbcp.PoolingDataSource $ PoolGuardConnectionWrapper.setAutoCommit(PoolingDataSource.java:328)   〜[commons-dbcp-1.4.jar:1.4] at   org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doBegin(JdbcTransaction.java:72)   〜[hibernate-core-4.2.7.Final.jar:4.2.7.Final] ... 90个常见帧   省略

此错误是随机抛出的,不适用于任何特定的api。

这是在database.xml中配置的

<beans:property name="hibernateProperties">
            <beans:props>
                <beans:prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect
                </beans:prop>
                <beans:prop key="hibernate.current_session_context_class">thread</beans:prop>
                <beans:prop key="hibernate.show_sql">false</beans:prop>
                <beans:prop key="maxwait">10000</beans:prop>
                <beans:prop key="maxidle">25</beans:prop>
                <beans:prop key="minidle">5</beans:prop>
            </beans:props>
</beans:property>

任何建议都将受到赞赏。

谢谢, Gayithri

1 个答案:

答案 0 :(得分:0)

这是因为您无法连接到数据库服务器。 wait_timeout变量表示MySQL在终止空闲连接之前等待的时间。检查您的网络环境。

错误日志已经告诉您为什么以及如何解决问题。试试吧。