Java 无法创建到数据库服务器MySQL 8.0的连接
这个错误在论坛上已经被处理过好几次了,但是我在更新到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并退出
- 启动工作台并单击“本地实例MySQL57”(该名称在更新后没有更改)。再次关闭工作台
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-感谢您提供的帮助,但我刚刚找到了解决方案。见下文。