Java Hibernate与远程MySql服务器的连接
我一直在尝试从LAN访问MySql服务器,它与“localhost”一起工作正常,但无法从Hibernate远程访问服务器 MySql querybrowser是一个能够访问远程服务器的浏览器,Ping工作正常,已经浏览了SO和internet以发现此错误,我每次都会发现: 通信链路错误 及 无法从服务器读取响应。预期读取4个字节,在连接意外丢失之前读取0个字节。 下面是Hibernate.cfg.xmlJava Hibernate与远程MySql服务器的连接,java,mysql,hibernate,Java,Mysql,Hibernate,我一直在尝试从LAN访问MySql服务器,它与“localhost”一起工作正常,但无法从Hibernate远程访问服务器 MySql querybrowser是一个能够访问远程服务器的浏览器,Ping工作正常,已经浏览了SO和internet以发现此错误,我每次都会发现: 通信链路错误 及 无法从服务器读取响应。预期读取4个字节,在连接意外丢失之前读取0个字节。 下面是Hibernate.cfg.xml <hibernate-configuration> <sessi
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="connection.url">
jdbc:mysql://192.168.0.15:3306/emrp
</property>
<property name="connection.username">username</property>
<property name="connection.password">password</property>
<property name="connection.pool_size">10</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="current_session_context_class">thread</property>
<property name="cache.provider_class">
org.hibernate.cache.NoCacheProvider
</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
</hibernate-configuration>
com.mysql.jdbc.Driver
jdbc:mysql://192.168.0.15:3306/emrp
用户名
密码
10
org.hibernate.dialogue.mysqldialogue
线
org.hibernate.cache.NoCacheProvider
真的
更新
连接超时、防火墙端口、权限授予,所有这些都已尝试过,但错误似乎出现了
这些是我们正在使用的工具和技术:
日食,
雄猫,
冬眠4
Mysql 5
支柱2
注:Telnet 192.168.0.15 3306工作,可以通过mysql查询浏览器连接
请带我到这里
以下是完整的堆栈跟踪:
org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect
at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:132)
at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator$1$1.convert(BasicConnectionCreator.java:118)
...
...
...
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(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2214)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:781)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
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.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:352)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:284)
at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:55)
... 109 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(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:675)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1078)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2142)
... 119 more
Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2497)
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:599)
... 121 more
org.hibernate.exception.jdbconnectionexception:调用驱动程序#connect时出错
位于org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:132)
位于org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator$1$1.convert(BasicConnectionCreator.java:118)
...
...
...
原因:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障
成功发送到服务器的最后一个数据包是0毫秒前的。驱动程序尚未从服务器收到任何数据包。
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)
位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源)
位于java.lang.reflect.Constructor.newInstance(未知源)
位于com.mysql.jdbc.Util.HandleneInstance(Util.java:406)
位于com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
位于com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2214)
位于com.mysql.jdbc.ConnectionImpl(ConnectionImpl.java:781)
JDBC4Connection.(JDBC4Connection.java:46)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)
位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源)
位于java.lang.reflect.Constructor.newInstance(未知源)
位于com.mysql.jdbc.Util.HandleneInstance(Util.java:406)
位于com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:352)
位于com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:284)
位于org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:55)
... 109更多
原因:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障
成功发送到服务器的最后一个数据包是0毫秒前的。驱动程序尚未从服务器收到任何数据包。
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)
位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源)
位于java.lang.reflect.Constructor.newInstance(未知源)
位于com.mysql.jdbc.Util.HandleneInstance(Util.java:406)
位于com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
位于com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:675)
位于com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1078)
位于com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2142)
... 119更多
原因:java.io.EOFException:无法从服务器读取响应。预期读取4个字节,在连接意外丢失之前读取0个字节。
在com.mysql.jdbc.MysqlIO.readfull上(MysqlIO.java:2497)
位于com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:599)
... 121更多
谢谢。您能提供完整的错误堆栈跟踪吗?另外,您可能想查看一下,您好,谢谢您的链接,已经发布了完整的堆栈跟踪,已经尝试了那里提供的大多数解决方案,将尝试剩余的解决方案,希望它们能够工作。您是否检查了此项以允许远程MySQL并设置绑定地址?是的,my.ini没有绑定地址参数,我已经授予了所有权限,重要的是,当从32位计算机连接时,它可以工作!!!!请您提供完整的错误堆栈跟踪。此外,您可能需要查看Hi,感谢该链接,已经发布了完整的堆栈跟踪,已经尝试了那里提供的大多数解决方案,将尝试剩余的解决方案,希望它们可以工作。您是否检查了此项以允许远程MySQL并设置绑定地址?是的,my.ini没有绑定地址参数,我已经授予了所有权限,重要的是,当从32位计算机连接时,它可以工作!!!!