参见英文答案 > com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 32个
我正在尝试使用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 @R_502_4126@.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,则可能必须使用某些防火墙.
总结以上是内存溢出为你收集整理的java – jdbc:无法创建与数据库服务器的连接全部内容,希望文章能够帮你解决java – jdbc:无法创建与数据库服务器的连接所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)