为了账号安全,请及时绑定邮箱和手机立即绑定

如何修复由于时区更改而导致的MySQL错误?

如何修复由于时区更改而导致的MySQL错误?

慕码人8056858 2022-09-14 16:24:26
目前在欧洲,时区发生了变化,现在又多了一个小时。由于某种原因,这破坏了我的脚本,我无法连接到我的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


查看完整回答
反对 回复 2022-09-14
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

试试这个:String url = "jdbc:mysql://localhost:3306/db?useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";

查看完整回答
反对 回复 2022-09-14
  • 2 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信