目前在欧洲,时区发生了变化,现在又多了一个小时。由于某种原因,这破坏了我的脚本,我无法连接到我的mysql数据库。我尝试重新启动,停止和启动mysql服务器,甚至重新启动日食。这些都行不通。 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.SQL例外:服务器时区值“CEST”无法识别或表示多个时区。如果要利用时区支持,则必须将服务器或 JDBC 驱动程序(通过服务器时区配置属性)配置为使用更具体的时区值。
2 回答
慕森王
TA贡献1777条经验 获得超3个赞
这可以通过 my.cnf 中的显式时区设置在服务器端修复。例如,如果您的时区是欧洲/柏林:
[mysqld]
default-time-zone = Europe/Berlin
慕桂英3389331
TA贡献2036条经验 获得超8个赞
试试这个:String url = "jdbc:mysql://localhost:3306/db?useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
添加回答
举报
0/150
提交
取消