MySQL:通信链路故障。发送到服务器的最后一个数据包是0毫秒前

时间:2015-06-30 10:58:09

标签: mysql jdbc database-connection mysqlconnection

首先让我澄清一下,我已经访问了很多与此问题相关的帖子。我已经尝试了几乎所有可能的建议解决方案,但它们都没有为我工作。 :(

以下是我尝试过的修补程序列表:

  1. MySQL服务器安装在CentOS上。我的Java代码是正确的 因为我能够与安装在我的Windows PC上的MySQL服务器通信。
    1. 我已经检查过MySQL服务器正在运行并接受0.0.0.0:3306的tcp连接(所以bind-address是正确的)
    2. "跳过联网"在/etc/my.cnf中评论
    3. 我的用户名被授予了我正在访问的数据库的所有权限
  2. 当我将以下内容添加到iptables时,我现在收到权限错误:

    -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

    java.sql.SQLException:为用户访问DENIED .... 但是,我已向用户@'%'提供了所有权限。和我正在使用的数据库上的user @ localhost。

    有人可以建议可能出现的错误吗?

    这是问题的堆栈跟踪。

    com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
    
    Last packet sent to the server was 0 ms ago.
        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:2104)
        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:729)
        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:302)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:283)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at com.tfv.gwj.DBResultsJson.getJsonResult(DBResultsJson.java:51)
        at com.tfv.gwj.DBResultsJson.main(DBResultsJson.java:173)
    Caused by: java.net.ConnectException: Connection timed out: 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 java.net.Socket.connect(Unknown Source)
        at java.net.Socket.<init>(Unknown Source)
        at java.net.Socket.<init>(Unknown Source)
        at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
        at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:276)
        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2027)
        ... 13 more
    

0 个答案:

没有答案