由于时区变化,如何修复MySQL的错误?

问题描述 投票:0回答:2

目前在欧洲,时区已经改变,现在又增加了一个小时。由于某种原因,这破坏了我的脚本,我无法连接到我的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配置属性)以使用更具体的时区值。

java mysql timezone
2个回答
1
投票

这可以在服务器端使用my.cnf中的显式时区设置进行修复。例如,如果你的时区是欧洲/柏林:

[mysqld]
default-time-zone = Europe/Berlin

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.