2

首先让我澄清一下,我已经访问了很多与本期 MySQL 相关的帖子。我已经尝试了几乎所有可能的建议解决方案,但没有一个对我有用。:(

这是我已经尝试过的修复列表:

  1. MySQL 服务器安装在 CentOS 上。我的 Java 代码是正确的,因为我能够与安装在我的 Windows PC 上的 MySQL 服务器进行通信。
    1. 我检查了 MySQL 服务器正在运行并在 0.0.0.0:3306 处接受 tcp 连接(所以 bind-address 是正确的)
    2. “skip-networking”在 /etc/my.cnf 中有注释
    3. 我的用户名授予了我正在访问的数据库的所有权限

当我将以下内容添加到 iptables 时,我现在收到权限错误:

-A 输入 -i eth0 -p tcp -m tcp --dport 3306 -j 接受

java.sql.SQLException: Access DENIED for user .... 但是,我已经为我正在使用的数据库上的 user@'%' 和 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
4

0 回答 0