【问题标题】:time zone issue with database数据库时区问题
【发布时间】:2019-11-24 21:12:45
【问题描述】:

我在尝试与数据库 MySQL 建立连接时遇到此错误

java.sql.SQLException:服务器时区值“CEST”无法识别或代表多个时区。如果要使用时区支持,则必须配置服务器或 JDBC 驱动程序(通过 serverTimezone 配置属性)以使用更具体的时区值。

与 MySQL 的连接是这样完成的:

private  String CONN_STRING = "jdbc:mysql://localhost:3306/vmenginedatabaseT04P/"; // "jdbc:mysql://localhost:3306/vm_database_1";
private boolean connected ;
private Connection connection;

public boolean isConnected() {
    return connected;
}

public Connection Connect() {
    Connection conn = null;
    try {
        Class.forName("com.mysql.cj.jdbc.Driver");
        conn = DriverManager.getConnection(CONN_STRING,USERNAME,PASSWORD);
        System.out.println("Connected");
        connected = true;
        return conn;
    } catch (SQLException e) {
        System.err.println(e);
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    return null;
}

【问题讨论】:

    标签: java mysql


    【解决方案1】:

    serverTimezone=UTC 添加到您的CONN_STRING 将是这样的:

    private  String CONN_STRING = "jdbc:mysql://localhost:3306/vmenginedatabaseT04P?serverTimezone=UTC"; // "jdbc:mysql://localhost:3306/vm_database_1";
    

    【讨论】:

      【解决方案2】:

      显然,MySQL JDBC 驱动程序要使用 CEST 时区,必须在连接字符串中明确指定服务器时区。

      jdbc:mysql://localhost/vmenginedatabaseT04P?serverTimezone=UTC

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-06
        • 2013-01-28
        • 2010-12-24
        • 2011-03-08
        相关资源
        最近更新 更多