如何解决错误: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:无法创建与数据库服务器的连接的主要内容,如果未能解决你的问题,请参考以下文章

"SQL SERVER,错误:207" 如何解决

如何解决“错误:输入中的语法错误(1)。”

如何解决此分段错误:以下代码的 11 错误?

如何解决子重复错误?

Ftp 错误代码 550,如何解决

这是啥覆盖错误,我该如何解决? [复制]