MySQLNonTransientConnectionException:无法创建与数据库服务器的连接。尝试重新连接 3 次。放弃[重复]

Posted

技术标签:

【中文标题】MySQLNonTransientConnectionException:无法创建与数据库服务器的连接。尝试重新连接 3 次。放弃[重复]【英文标题】:MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up [duplicate] 【发布时间】:2016-08-18 01:20:40 【问题描述】:

我无法连接到我的数据库。我认为某处有一个我不知道并且需要更改的设置。我这里有一些非常基本的代码:

public static void main(String[] args)

    try
    
        Connection con = DriverManager.getConnection("jdbc:mysql://IP:3306/TABLENAME?autoReconnect=true","USERNAME", "PASSWORD");
        con.close();
    

    catch(Exception e)
    
        e.printStackTrace();
    

显然是登录信息。它会导致此错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.

Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

Caused by: java.net.ConnectException: Connection refused

我浏览了大约 10 篇关于同一问题的不同帖子,并尝试了他们的解决方案,但仍然无法正常工作。

【问题讨论】:

***.com/questions/2983248/… @FastSnail 我尝试了所有 BalusC 技巧,但仍然遇到同样的问题。 也读过这篇***.com/questions/6865538/… 链接答案不涵盖问题空间。提供的链接中未提及标题中的错误。就我而言,原来我的旧MySql5.7 想使用TLSv1.1,它已被OpenJDK v11.0.11 版本阻止。要再次允许它,您可以从jdk.tls.disabledAlgorithms in openjdk64-11.0.11/conf/security/java.security 的列表中删除TLSv1.1。这是此问题的一个可能原因的一种可能解决方案。请重新提出问题。 请检查您的mysql服务器版本。它应该与您提到的依赖于 pom.xml 中的 mysql 连接器的 mysql 连接器版本兼容 【参考方案1】:

当 MySQL 服务未运行并且您尝试连接到 mysql 数据库时会出现此问题。

要在 Windows 中解决此问题,

开始>>键入“服务”并打开它。

找到 MySQL 服务。可能名称为 MySQLxx。 xx 是版本。例如。 MySQL56、MySQL57 等

启动服务,现在尝试连接到数据库。

【讨论】:

【参考方案2】:

增加Mysql最大连接数,

SET GLOBAL max_connections = 1500;  

如果仍然出现错误,则查询可能需要很长时间才能响应。

在这种情况下,在创建 jdbc 连接时增加尝试,

&maxReconnects=XX 

【讨论】:

【参考方案3】:

你必须使用数据库名而不是表名

【讨论】:

以上是关于MySQLNonTransientConnectionException:无法创建与数据库服务器的连接。尝试重新连接 3 次。放弃[重复]的主要内容,如果未能解决你的问题,请参考以下文章