0

我已经安装了 MySQL Workbench 8.0,并试图通过连接器/J 版本 5.1.39 通过 Netbeans 连接到我的数据库。

这是一个在我的 Windows Surface 上运行良好的设置。我正在尝试在我的家用 PC 上复制设置,但遇到了问题。

编码:

String driver       = "jdbc:mysql:";
String hostAndPort  = "//localhost:3306/";
String database     = "bills";
String options      = "?autoReconnect=true&useSSL=false";

final String userName = "root";
final String password = "pass";

String url = driver + hostAndPort + database + options;

    try(Connection con = DriverManager.getConnection(url, userName, password);
        Statement st = con.createStatement())
    {

        // Do nothing so far

    } catch (SQLException ex) {
        System.out.println("SQLException:\t" + ex.getMessage());
        System.out.println("SQLState:\t"     + ex.getSQLState());
        System.out.println("VendorError:\t"  + ex.getErrorCode());
    }

当我尝试运行应用程序时,它会捕获异常并打印:

SQLException:   Could not create connection to database server. Attempted reconnect 3 times. Giving up.
SQLState:       08001
VendorError:    0

值得一提的是,是的,数据库“账单”存在,用户和密码都正确。我可以使用它们进入 MySQL Workbench 并编辑账单数据库。

我尝试过的事情:

  • 我将 Connector/J 目录路径添加到类路径中。
  • 我将 Connector/J jar 文件直接添加到项目中。
  • 我在项目中添加了“MySQL JDBC Driver”库。
  • 我验证了数据库已设置为使用端口 3306 和“标准 (TCP/IP)”连接方法。(我也没有 root 用户的“帐户限制”)

在此处输入图像描述

  • 我验证了 Windows Defender 防火墙没有阻止 MySQL。(我没有其他防火墙)

在此处输入图像描述

  • 我验证了 MySQL 服务正在运行

在此处输入图像描述

同样,此设置在我的 Surface 上运行良好。我尝试了较新版本的 Connector/J,但遇到了与 MySQL Workbench v. 8 的兼容性问题,因此我决定使用 v. 5.1.39(Connector/J),因为它适用于我的 Surface。

唯一让我知道发生了什么的地方是,当我检查家用电脑上的端口活动并将其与我的表面进行比较时:

在尝试连接到数据库期间观察端口时,我得到以下信息:

在此处输入图像描述

为什么我的家用 PC 上没有建立端口连接?这是问题的根源吗?我该如何解决?

如果这不是问题的根源,那为什么我无法连接?

4

1 回答 1

0

您的JDBC 驱动程序版本可能与您的MySQL 数据库服务器不兼容。在这种情况下,您可以尝试将驱动程序更新为您的数据库版本 Connector/J 版本 8.0+

于 2019-04-12T03:26:54.007 回答