• Java 连接本地数据库失败 Communications link failure


    连接本地数据库失败。重现代码

            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/database1?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai",
                    "root","123456");
            Statement sql = conn.createStatement();
            ResultSet res = sql.executeQuery("select * from api_info ");
            System.out.println("ResultSet"  + res.toString());

    用Java11.0.12运行,出现如下错误:

    C:\interfaceui>"C:\Program Files\Java\jdk-11.0.12\bin\java.exe" -jar interfaceUI.jar
    Exception in thread "main" java.lang.reflect.InvocationTargetException
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:566)
            at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
            at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
            at org.springframework.boot.loader.Launcher.launch(Launcher.java:51)
            at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52)
    Caused by: com.mysql.cj.jdbc.exceptions.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.
            at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174)
            at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64)
            at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)
            at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455)
            at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
            at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:207)
            at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
            at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
            at com.github.alenfive.rocketapi.RocketAPIApplication.main(RocketAPIApplication.java:17)
            ... 8 more
    Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure

    解决方案:更换jdk版本。目前我使用的是11.0.5.

    根本原因未知。有没有大神告诉一下根本原因?

    经过证实,连接远程数据库没有问题,就本地数据库有问题,使用ip地址或者localhost都不行。

  • 相关阅读:
    1028 人口普查 (20分)
    1027 打印沙漏 (20分)
    1026 程序运行时间 (15分)
    1025 反转链表 (25分)
    1024 科学计数法 (20分)
    1023 组个最小数 (20分)
    1022 D进制的A+B (20分)
    1021 个位数统计 (15分)
    1020 月饼 (25分)
    1019 数字黑洞 (20分)
  • 原文地址:https://www.cnblogs.com/crazyghostvon/p/jdkbug11_0_12.html
Copyright © 2020-2023  润新知