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

目前在欧洲,时区发生了变化,现在又多了一个小时。由于某种原因,这破坏了我的脚本,我无法连接到我的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 驱动程序(通过服务器时区配置属性)配置为使用更具体的时区值。


慕码人8056858
浏览 84回答 2
2回答

慕森王

这可以通过 my.cnf 中的显式时区设置在服务器端修复。例如,如果您的时区是欧洲/柏林:[mysqld]default-time-zone = Europe/Berlin

慕桂英3389331

试试这个:String url = "jdbc:mysql://localhost:3306/db?useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java