Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法创建到数据库服务器MySQL 8.0的连接_Java_Mysql_Jdbc - Fatal编程技术网

Java 无法创建到数据库服务器MySQL 8.0的连接

Java 无法创建到数据库服务器MySQL 8.0的连接,java,mysql,jdbc,Java,Mysql,Jdbc,这个错误在论坛上已经被处理过好几次了,但是我在更新到MySQL 8.0后第一次遇到了这个错误,并且为以前的版本提出的解决方案不起作用。 但是,我发现了两种防止错误的方法: 从控制台窗口运行MySQL并退出 启动工作台并单击“本地实例MySQL57”(该名称在更新后没有更改)。再次关闭工作台 在重新启动电脑之前,错误不会再发生。 启动“计算机管理”(Win10)并查看服务,我看到“MySQL80”在PC启动后立即处于“运行”状态。看来没问题 我使用的是MySQL服务器版本:8.0.12 和my

这个错误在论坛上已经被处理过好几次了,但是我在更新到MySQL 8.0后第一次遇到了这个错误,并且为以前的版本提出的解决方案不起作用。 但是,我发现了两种防止错误的方法:

  • 从控制台窗口运行MySQL并退出
  • 启动工作台并单击“本地实例MySQL57”(该名称在更新后没有更改)。再次关闭工作台
在重新启动电脑之前,错误不会再发生。 启动“计算机管理”(Win10)并查看服务,我看到“MySQL80”在PC启动后立即处于“运行”状态。看来没问题

我使用的是MySQL服务器版本:8.0.12 和mysql连接器java 8.0.12

下面是我用来获取连接的java代码。在8.0版本中,我必须添加时区信息才能正常工作。看看我还测试了哪些其他标志

import java.sql.*;
import java.util.*;

public class Test {
  String url= "jdbc:mysql://localhost/myDb?autoReconnect=true&useSSL=false";

  public Test() {
    try {
      Connection conn= DriverManager.getConnection(url+"&serverTimezone=CET",
//  "&useJDBCCompliantTimezoneShift=true"+
//  "&useUnicode=true&characterEncoding=UTF-8"+
//  "&zeroDateTimeBehavior=CONVERT_TO_NULL",
    "root",
    "mypass");
      System.out.println(conn);
    }
    catch(SQLException e) {
      System.out.println(e);
    }
    System.exit(0);
  }


  public static void main(String args[]) {
    EventQueue.invokeLater(Test::new);
  }

}
编辑:
刚刚更新到server和J/Connector 8.0.13,但是java.sql.SQLNonTransientConnectionException仍然存在。

在我给定的测试用例中,必须删除“&useSSL=false”

在Connector/J 8.0中,“useSSL”已被“sslMode”取代,“useSSL”确实已被弃用。但对我来说,“不推荐”并不意味着“非法”。所以现在我们知道了:当心反对


至少在我的位置(中欧),指定serverTimezone似乎是必须的(运行时错误)。

首先加载驱动程序@雅蒂-这是怎么做到的?在8.0之前没有必要,请发布完整的异常stacktrace。@YatiSawhney在普通Java应用程序中加载驱动程序自+/-2006以来就没有必要了。@@Mark Rotterveel-感谢您提供的帮助,但我刚刚找到了解决方案。见下文。