| 
                         参见英文答案 > com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure32个 我正在尝试使用jdbc连接mysql数据库. 这是我的数据库连接类: 
public class Database {
    String userName = "myUserName";
    String password = "myPass";
    String url = "jdbc:mysql://xxx.xxx.xxx.xxx:3306/database_Name?autoReconnect=true&useSSL=false";
    public void connect()
    {
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            Connection conn = DriverManager.getConnection(url,userName,password);
            Statement statement = conn.createStatement();
            String queryString = "select * from users";
            ResultSet rs = statement.executeQuery(queryString);
            while (rs.next()) {
                System.out.println(rs.getString(2));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
 
现在,您可以假设我调用的方法如下: 
new Database().connect();
 
我得到这个例外: 
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
    at com.mysql.jdbc.Util.getInstance(Util.java:408)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:918)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:897)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:886)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860)
    at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2163)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2088)
    at com.mysql.jdbc.ConnectionImpl. 
*我添加%来从远程访问数据库. 
* Java部分为localhost工作但是当我尝试这个远程数据库时,它失败了. 
*创建了数据库和表.(没有问题.) 
那问题出在哪里? 
最佳答案
Java part working for localhost but when I try this remote database,it fails 
 
这意味着,您的MySql服务器绑定到localhost,并且在外部不可见. 请将MySql conf文件中的bind-address属性设置为主机的实际IP地址. 
例如:bind-address = 192.168.1.26 
根据实际IP地址,我的意思是您的客户端可以看到运行Java代码的位置.这可以是内联网地址或公共IP.如果要公开您的公共IP,则可能必须使用某些防火墙.                         (编辑:莱芜站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |