当前在欧洲,时区已更改,现在又增加了一个小时。由于某种原因,这破坏了我的脚本,并且我无法连接到mysql数据库。
我尝试重新启动,停止和启动mysql服务器,甚至重新启动eclipse。这些都不起作用。
public static Connection getConnection() throws Exception{
try {
String driver = "com.mysql.cj.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/db";
String username = "root";
String password = "***";
Class.forName(driver);
Connection DB = DriverManager.getConnection(url, username, password);
System.out.println("Connected to Database");
return DB;
} catch(Exception e) {System.out.println(e);
}
return null;
}
这在更改时间之前有效,现在我收到此错误
java.sql.SQLException:服务器时区值'CEST'无法识别或代表多个时区。如果要利用时区支持,必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)以使用更特定的时区值。
答案 0 :(得分:1)
这可以在服务器端使用my.cnf中的显式时区设置来解决。例如,如果您的时区是欧洲/柏林:
[mysqld]
default-time-zone = Europe/Berlin
答案 1 :(得分:0)
尝试一下:
String url = "jdbc:mysql://localhost:3306/db?useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";