如何解决错误:java.sql.SQLNonTransientConnectionException:无法创建与数据库服务器的连接
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决错误:java.sql.SQLNonTransientConnectionException:无法创建与数据库服务器的连接相关的知识,希望对你有一定的参考价值。
这是我的代码
private String dbURL;
private String dbUsername = "root";
private String dbPassword = "root1234";
private String URL = "localhost";
private String port = "3306";
private String dbName = "university";
private Connection con;
private void connectToDataBase() throws ClassNotFoundException, SQLException
dbURL = "jdbc:mysql://" + URL + ":" + port + "/" + dbName + "?verifyServerCertificate=false";
Properties p = new Properties();
p.setProperty("user", dbUsername);
p.setProperty("password", dbPassword);
p.setProperty("useSSL", "false");
p.setProperty("autoReconnect", "true");
Class.forName("com.mysql.cj.jdbc.Driver");
con = DriverManager.getConnection(dbURL, p);
我遇到了这个问题java.sql.SQLNonTransientConnectionException:无法创建与数据库服务器的连接。尝试重新连接3次。放弃。enter image description here
答案
您正在添加URL的额外内容;首先,您声明了这一点:
private String URL = "jdbc:mysql://localhost:3306";
现在,在connectToDatabase方法中,您通过在以下网址之间放置该URL来构建dbURL:
dbURL = "jdbc:mysql://" + URL + ":" + port + "/" + dbName + "?verifyServerCertificate=false";
您的实际dbURL实际上将如下所示:dbURL =“ jdbc:mysql://” +“ jdbc:mysql:// localhost:3306” +“:” +端口+“ /” + dbName +“?verifyServerCertificate = false”;
因此,将URL初始化为:
URL = "localhost";
另一答案
我只是想通过提供的详细信息来帮助解决问题:)。尝试,
dbURL = "jdbc:mysql://" + URL + ":" + port + "/" + dbName + "?verifyServerCertificate=false"+ "&useSSL=false";
Properties p = new Properties();
p.setProperty("user", dbUsername);
p.setProperty("password", dbPassword);
Class.forName("com.mysql.cj.jdbc.Driver");
con = DriverManager.getConnection(dbURL, p);
注意:我没有设置"autoReconnect", "true"
以上是关于如何解决错误:java.sql.SQLNonTransientConnectionException:无法创建与数据库服务器的连接的主要内容,如果未能解决你的问题,请参考以下文章