当前位置: 首页 > 知识库问答 >
问题:

Java MySQL JDBC驱动程序异常[重复]

翟昊明
2023-03-14
The last packet sent successfully to the server was 0 milliseconds ago. The 
driver has not received any packets from the server.
    at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:172)
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64)
    at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:862)
    at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:444)
    at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:230)
    at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:226)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at teabot.database.DatabaseConnection.<init>(DatabaseConnection.java:26)
    at teabot.database.DatabaseHelper.setupDB(DatabaseHelper.java:16)
    at teabot.main.Main.init(Main.java:39)
    at teabot.main.Main.main(Main.java:69)
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: 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.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:59)
    at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:103)
    at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:149)
    at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:165)
    at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:92)
    at com.mysql.cj.NativeSession.connect(NativeSession.java:152)
    at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:982)
    at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:852)
    ... 9 more
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:173)
    at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:66)

源代码:

protected DatabaseConnection(String host, int port, String databaseName, String username, String password) {                
    boolean error = false;
    try {
        String url = "jdbc:mysql://" + host + ":" + port + "/" + databaseName;
        this.connection = DriverManager.getConnection(url, username, password);
    } catch (SQLException e) {
        e.printStackTrace();
        Helper.log(2, e.getMessage());
        error = true;
    }
    if (!error) {
        Helper.log(0, "Database is ready.");
    }
}

编辑:我的问题是我的MySQL服务器没有监听那个端口,因为当我用phpMyAdmin测试它时,我忘记它运行在同一台机器上。

共有1个答案

时恩
2023-03-14

与其说是一个答案,不如说是一种诊断问题的方法

我通常尝试使用telnet或putty这样的工具在相关端口连接到MySQL数据库。如果你不能连接,你知道问题不是你的代码,而是你的网络连接。这就是堆栈跟踪在我看来的样子--一个网络连接问题,而不是其他任何问题。也许防火墙阻塞了端口?

然后,我将尝试使用带有用户名和密码的MySQL连接工具。

 类似资料:
  • 我使用Firefox驱动程序编写了许多Selenium测试,效果很好。但由于某些原因,我现在在尝试实例化Firefox驱动程序时遇到了一个异常。有人知道Firefox的任何更新可能会影响这一点吗? 下面是两行代码。异常发生在第2行:- 以下是我得到的例外情况:- “WebDriver.dll中出现“OpenQA.Selenium.WebDriverException”类型的异常,但未在用户代码中处

  • 我在spark中编写了一个简单的程序,在mySql中向表中写入一个数据帧。 计划如下: 我的项目的POM文件如下 我运行这个程序使用火花提交(尝试在本地和纱线模式)。我没有显式包含任何jar文件来运行此代码。我一直得到错误: 线程“main”java中出现异常。lang.ClassNotFoundException:com。mysql。jdbc。驾驶员 对此该怎么办?

  • 我有selenium 2.53.1.jar、platform Windows、Java-1.8、chrome=52.0、chrome-driver.exe-2.23。 在Jenkins上进行夜间观察测试时,我看到了以下消息。 org.openqa.selenium.WebDriverException:未知错误:无法发现打开的页面(驱动信息:chromeDrive=2.23.409699 (49b

  • 我试图将我的Java程序连接到数据库,但是由于某种原因,我得到了一个异常,告诉我没有找到合适的驱动程序。 这是我用来连接的代码: 有人看出问题所在了吗?

  • 我必须点击页面上的某个按钮。但是,当我检索所有具有特定类名的元素时。当我尝试执行每个元素或单击时,所有检索到的元素都会抛出一个过时的引用异常。我不能双击任何一个。它找到了正确的元素,但抛出了所有元素的例外。注释掉的代码就是我试图选择并点击相应按钮的地方。我附上了表格的照片。请注意,每次单击或执行按钮时,页面都会发生更改。选择上传BOM按钮是您需要特别注意的。网站

  • 我正在使用Firefox 47.0.1和木偶驱动程序geckodriver-v0。8.0-win32。但我遇到了无法访问的浏览器异常,无法打开。 我的代码片段如下所示: 将异常显示为:- 组织。openqa。硒。遥远的UnreachableBrowserException:无法启动新会话。可能的原因是远程服务器地址无效或浏览器启动失败。构建信息:版本:'2.53.0',版本:'35ae25b',时