我有2台具有相同的数据库。休眠 - 连接到远程MySQL数据库出现故障时,连接到本地时成功
我使用Hibernate的版本4.3.6.Final
当我使用此配置(连接到本地数据库) - 一切正常:
<persistence-unit name="stg">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<properties>
<!--
<property name="hibernate.ejb.cfgfile" value="/hibernate.cfg.xml"/>
-->
<property name="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.ImprovedNamingStrategy"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.archive.autodetection" value="class, hbm"/>
<property name="hibernate.show_sql" value="false"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.password" value="PASSWORD"/>
<property name="hibernate.connection.url" value="jdbc:mysql://127.0.0.1:3306/DATABASENAME?autoReconnect=true"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.c3p0.timeout" value="3600"/>
<property name="hibernate.c3p0.min_size" value="20"/>
<property name="hibernate.c3p0.max_size" value="100"/>
<property name="hibernate.c3p0.acquire_increment" value="5"/>
<property name="hibernate.c3p0.maxIdleTimeExcessConnections" value="300"/>
<property name="hibernate.c3p0.automaticTestTable" value="hibernate_conn_test"/>
<property name="hibernate.c3p0.testConnectionOnCheckout" value="false"/>
<property name="hibernate.c3p0.validate" value="false"/>
<property name="hibernate.c3p0.testConnectionOnCheckin" value="true"/>
<property name="hibernate.c3p0.idle_test_period" value="300"/>
<property name="hibernate.c3p0.unreturnedConnectionTimeout" value="3600"/>
<property name="hibernate.c3p0.numHelperThreads" value="6"/>
</properties>
</persistence-unit>
唯一令我改变的是IP到其他机器上,我总是得到同样的错误:
<property name="hibernate.connection.url" value="jdbc:mysql://2.2.2.2:3306/te?autoReconnect=true"/>
这是我收到的错误:
[localhost-startStop-1][ ][13 Jan 2016 16:40:43,386] [internal.JdbcServicesImpl ]: [WARN ] HHH000342: Could not obtain connection to query metadata : Could not create connection to database server. Attempted reconnect 3 times. Giving up.
[本地主机 - startStop-1] [] [2016年1月13日16:40:48819] [hbm2ddl.SchemaUpdate]:[ERROR] HHH000319:不能获得数据库的元数据 com.mysql.jdbc.exceptions .jdbc4.MySQLNonTransientConnectionException:无法创建连接到数据库服务器。尝试重新连接3次。放弃。 在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在sun.reflect.NativeConstructorAccessorImpl.newInstance(来源不明) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(来源不明) 在java.lang.reflect.Constructor.newInstance (Unknown Source) at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) at com.mysql.jdbc.Util.getInstance(Util.java:386) at com.mysql.jdbc.SQLError。创建SQLException(SQLError.java:1015) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975) at com.mysql。 jdbc.SQLError.createSQLException(SQLError.java:920) at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2395) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2316) at com.mysql.jdbc.ConnectionImpl。(ConnectionImpl.java :834) 在com.mysql.jdbc.JDBC4Connection(JDBC4Connection.java:47) 在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在sun.reflect.NativeConstructorAccessorImpl.newInstance(来源不明) Sun公司。 reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) at com.mysql.jdbc。 ConnectionImpl.getInstance(ConnectionImpl.java:416) 在com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:347) 在com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:131) 在com.mchange.v2.c3p0.WrapperConnectionPoolDataSource。 getPooledConnection(WrapperConnectionPoolDataSource.java:156) 在com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:145) 在com.mchange.v2.c3p0.impl.C3P0PooledConnectionPoolManager.initializeAutomaticTestTable(C3P0PooledConnectionPoolManager.java:898) 在com.mchange.v2.c3p0.impl.C3P0PooledConnectionPoolManager.createPooledConnectionPool(C3P0PooledConnectionPoolManager.java:821) 在com.mchange.v2.c3p0.impl.C3P0PooledConnectionPoolManager.getPool(C3P0PooledConnectionPoolManager.java:331) 在com.mchange.v2.c3p0.impl.C3P0PooledConnectionPoolManager.getPool(C3P0PooledConnectionPoolManager.java:348) 在com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource。的getConnection(AbstractPoolBackedDataSource.java:140) 在org.hibernate.c3p0.internal.C3P0ConnectionProvider.getConnection(C3P0ConnectionProvider.java:89) 在org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:51) 在org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:194) at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:178) at org.hibernate.internal.SessionFactoryImpl。(SessionFactoryImpl的.java:522) 在org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1857) 在org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl $ 4.perform(EntityManagerFactoryBuilderImpl.java:850) 的组织。 hibernate.jpa.boot.in ternal.EntityManagerFactoryBuilderImpl $ 4.perform(EntityManagerFactoryBuilderImpl.java:843) 在org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:398) 在org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl .build(EntityManagerFactoryBuilderImpl.java:842) 在org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:75) 在com.checkpoint.te.shared.service.CustomHibernatePersistence.createEntityManagerFactory(CustomHibernatePersistence.java:43) at com.checkpoint.te.shared.service.CustomHibernatePersistence.createEntityManagerFactory(CustomHibernatePersistence.java:28) at com.checkpoint.te.shared.sql.DbHandler.lifeCycleUp(DbHandler.java:192) at c om.checkpoint.te.shared.BaseLifecycleListener.contextInitialized(BaseLifecycleListener.java:42) at com.checkpoint.te.shared.TomcatLifecycleListener.contextInitialized(TomcatLifecycleListener.java:13) at com.checkpoint.te.pod.PodLifecycleListener。 contextInitialized(PodLifecycleListener.java:43) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4797) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5291) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) at org.apache.catalina.core.ContainerBase。 addChild(ContainerBase.java:877) at org.apache.catalina.core.StandardHost。 addChild(StandardHost.java:633) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977) at org.apache.catalina.startup.HostConfig $ DeployWar.run(HostConfig.java:1655) at java.util.concurrent.Executors $ RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java .util.concurrent.ThreadPoolExecutor $ Worker.run(来源不明) 在java.lang.Thread.run(来源不明) 产生的原因:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障
最后一个数据包发送成功到服务器的时间是0毫秒前。驱动程序尚未收到来自服务器的任何数据包。 在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在sun.reflect.NativeConstructorAccessorImpl.newInstance(来源不明) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(来源不明) 在java.lang.reflect.Constructor.newInstance (Unknown Source) at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1121) at com.mysql.jdbc.MysqlIO。 (MysqlIO.java:358) at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2489) at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl。Java的:2334) ...... 48多个 造成的:java.net.ConnectException:连接在java.net.PlainSocketImpl.socketConnect(本机方法) 拒绝 在java.net.AbstractPlainSocketImpl.doConnect(来源不明) 在java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) at java.net.AbstractPlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) (未知源) at java.net.Socket.connect(Unknown Source) at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFacto ry.java:259) at com.mysql.jdbc.MysqlIO。(MysqlIO.java:308) ... 50更多 [localhost-startStop-1] [] [2016年1月13日16:40:48,825] [ hbm2ddl.SchemaUpdate]:[错误] HHH000299:无法完成模式更新 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:无法创建与数据库服务器的连接。尝试重新连接3次。放弃。 在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在sun.reflect.NativeConstructorAccessorImpl.newInstance(来源不明) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(来源不明) 在java.lang.reflect.Constructor.newInstance (Unknown Source) at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) at com.mysql.jdbc.Util.getInstance(Util.java:386) at com.mysql.jdbc.SQLError。创建SQLException(SQLError.java:1015) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975) at com.mysql。 jdbc.SQLError.createSQLException(SQLError.java:920) at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2395) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2316) at com.mysql.jdbc.ConnectionImpl。(ConnectionImpl.java :834) 在com.mysql.jdbc.JDBC4Connection(JDBC4Connection.java:47) 在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在sun.reflect.NativeConstructorAccessorImpl.newInstance(来源不明) Sun公司。 reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) at com.mysql.jdbc。 ConnectionImpl.getInstance(ConnectionImpl.java:416) 在com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:347) 在com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:131) 在com.mchange.v2.c3p0.WrapperConnectionPoolDataSource。 getPooledConnection(WrapperConnectionPoolDataSource.java:156) 在com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:145) 在com.mchange.v2.c3p0.impl.C3P0PooledConnectionPoolManager.initializeAutomaticTestTable(C3P0PooledConnectionPoolManager.java:898) 在com.mchange.v2.c3p0.impl.C3P0PooledConnectionPoolManager.createPooledConnectionPool(C3P0PooledConnectionPoolManager.java:821) 在com.mchange.v2.c3p0.impl.C3P0PooledConnectionPoolManager.getPool(C3P0PooledConnectionPoolManager.java:331) 在com.mchange.v2.c3p0.impl.C3P0PooledConnectionPoolManager.getPool(C3P0PooledConnectionPoolManager.java:348) 在com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:140) 在org.hibernate作为。 c3p0.internal.C3P0ConnectionProvider.getConnection(C3P0ConnectionProvider.java:89) at org.hibernate.tool.hbm2ddl。SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:51) 在org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:194) 在org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:178) 在org.hibernate.internal.SessionFactoryImpl。(SessionFactoryImpl.java:522) 在org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1857) 在org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl $ 4中。执行(EntityManagerFactoryBuilderImpl.java:850) 在org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl $ 4.perform(EntityManagerFactoryBuilderImpl.java:843) 在org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl .java:398) 在org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:842) 在org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:75) 在com.checkpoint.te.shared。 service.CustomHibernatePersistence.createEntityManagerFactory(CustomHibernatePersistence.java:43) at com.checkpoint.te.shared.service.CustomHibernatePersistence.createEntityManagerFactory(CustomHibernatePersistence.java:28) at com.checkpoint.te.shared.sql.DbHandler.lifeCycleUp( (com.checkpoint.te.shared.TomcatLifecycleListener.contextInitialized(TomcatLifecycleListener.java:13))at com.checkpoint.te.pod.PodLifecycleListener.contextInitialized(PodLifecycleListener.java:43) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4797) at org.apache.catalina.core。 StandardContext.startInternal(StandardContext.java:5291) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) 在org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 在org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) 在org.apache.catalina.startup。 HostConfig.deployWAR(HostConfig.java:977) at org.apache.catalina.startup.HostConfig $ DeployWar.run(HostConfig.java:1655) at java.util.concurrent.Executors $ RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java .util.concurrent.ThreadPoolExecutor $ Worker.run(来源不明) 在java.lang.Thread.run(来源不明) 产生的原因:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障
成功发送到服务器的最后一个数据包是0毫秒前。驱动程序尚未收到来自服务器的任何数据包。 在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在sun.reflect.NativeConstructorAccessorImpl.newInstance(来源不明) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(来源不明) 在java.lang.reflect.Constructor.newInstance (Unknown Source) at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1121) at com.mysql.jdbc.MysqlIO。 (MysqlIO.java:358) 在com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2489) 在com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2334) ... 48更 引起:java .net.ConnectException:连接被拒绝 at java.net.PlainSocketImpl。socketConnect(本机方法) 在java.net.AbstractPlainSocketImpl.doConnect(来源不明) 在java.net.AbstractPlainSocketImpl.connectToAddress(来源不明) 在java.net.AbstractPlainSocketImpl.connect(来源不明) 在java.net上。 SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket。(Unknown Source) at java.net .Socket。(来源不明) 在com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:259) 在com.mysql.jdbc.MysqlIO。(MysqlIO.java:308) ...... 50多个
任何人都可以帮忙吗?
我试着改变端口,但没有帮手。不知道从哪里开始
你尝试连接到MySQL的工作台远程数据库? –
您是否ping过远程服务器? –
嘿,是的,有一个平。我无法连接使用MySQL(我授予所有特权的根),但出于某种原因,我不能远程连接 – user1386966