Как исправить ошибку с MySQL из-за смены часового пояса? - PullRequest
0 голосов
/ 01 апреля 2019

В настоящее время в Европе часовой пояс изменился, и теперь его на час больше. По какой-то причине это сломало мой скрипт, и я не могу подключиться к своей базе данных 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 ]

1 голос
/ 01 апреля 2019

Это можно исправить на стороне сервера с помощью явной настройки часового пояса в my.cnf.Если ваш часовой пояс, например, Европа / Берлин:

[mysqld]
default-time-zone = Europe/Berlin
0 голосов
/ 01 апреля 2019

попробуйте это: String url = "jdbc:mysql://localhost:3306/db?useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...