当前位置: 首页 > 知识库问答 >
问题:

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

古弘
2023-03-14

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

共有2个答案

傅恺
2023-03-14

试试这个:< code > String URL = " JDBC:MySQL://localhost:3306/db?use jdbccomplianttimezoneshift = true

梁楷
2023-03-14

这可以通过my.cnf中的显式时区设置在服务器端解决。例如,如果您的时区是欧洲/柏林:

[mysqld]
default-time-zone = Europe/Berlin
 类似资料:
  • 我试图找到一个解决方案,如何将存储在数据库中的日期时间转换为yyyyy-mm-dd HH-mm-ss,并给它时区美国/Los_Angeles。 如果我更改时区,Carbon将自动从时间中减去7小时,这就是将时间从UTC更改为PST时发生的情况,但我的DB中的时间设置为PST时间。例如,我希望时间是今天上午10点,但如果我改变时区,碳将转换为今天凌晨3点。 如果时区改为PST,但仍然保持上午10点的

  • 问题内容: 向MySQL发出命令时,出现错误#1064“语法错误”。 这是什么意思? 我该如何解决? 问题答案: 错误#1064表示MySQL无法理解您的命令。要解决这个问题: 阅读错误消息。 它 准确地 告诉您MySQL 在命令中哪里 混淆了。 检查您的命令。 如果您使用的编程语言来创建你的命令,使用,或同等学历,以显示 完整的命令 ,所以你可以看到它。 检查手册。 通过对MySQL的什么比较

  • 我有一个标准的应用程序设置(活动、视图模型、存储库)。该活动包含一个RecyclerView。RecyclerView有一个适配器。在我的活动中,我通过观察LiveData对象来更新RecyclerView: 如果用户点击我的RecyclerView中的任何项目,quizTask将被更改,并将触发一个onChanged事件。根据用户点击的项目,我想更改RecyclerView中一些项目的字体颜色。

  • 尝试用DataGrip连接到MySQL实例时,我收到异常: 服务器时区值“xxx”无法识别或表示多个时区。如果要利用时区支持,则必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)以使用更指定的时区值。 其中是我服务器的时区(我也喜欢异常指定中的错别字)。此错误使我无法创建到MySQL服务器的连接。是什么导致了这个问题?

  • 我有一个长期运行的AWSJavaSDKDynamoDB应用程序,当我启动它时,它的行为正常。但是,在几个小时后(大约12小时),我开始一遍又一遍地接收相同的,并对DynamoDB API进行任何调用。如果我重新启动服务器,会消失...只是稍后再次出现。 确切的ExpiredTokenException错误文本是: 请求中包含的安全令牌已过期(服务:AmazonDynamoDBv2;状态代码:400

  • 问题内容: 我写了一个控制台应用程序就跑,然后。这很好。 然后,我创建了一个包,并将helloworld.java移入其中(包导入语句正确生成为)。然后我运行了它,效果也很好,并正确生成了类。 但是,当我从控制台运行时,它引发了“找不到类”错误。 请谁能告诉我这是什么问题? 问题答案: 尝试跑步 其中ABSOLUTE_PATH指向类文件以及程序包所在的目录。说它是生成类文件的目录,以及与源文件相同