Назад | Перейти на главную страницу

Время MySQL отличается от системного времени

У меня проблема, когда MySQL сообщает время на шесть минут позже системного времени. Я проверил правильность всех настроек часового пояса, но не знаю, как устранить шестиминутную разницу:

mysql> SELECT NOW(),CURDATE(),CURTIME();
+---------------------+------------+-----------+
| NOW()               | CURDATE()  | CURTIME() |
+---------------------+------------+-----------+
| 2015-04-24 16:05:24 | 2015-04-24 | 16:05:24  |
+---------------------+------------+-----------+
1 row in set (0.00 sec)


[root@server]# clock
Fri 24 Apr 2015 03:59:04 PM UTC  -0.860391 seconds

Спасибо!

Я ненавижу утверждать очевидное, но MySQL работает в той же системе как экземпляр bash?

Вы подключаетесь к серверу по SSH или это локальный рабочий стол Linux? Как вы подключаетесь к MySQL?

Недавно мне пришлось устранить именно эту проблему, и я нашел этот пост. В нашем случае разработчик использовал псевдоним для подключения к MySQL, и он не помнил, что MySQL на самом деле работал на другом хосте, чем он использовал SSH (также с псевдонимом).

mysqld пытается определить ваш часовой пояс при запуске. Вы можете увидеть эти значения с помощью:

SELECT @@global.time_zone, @@session.time_zone;

Вы можете установить часовой пояс для каждого сеанса или глобально во время выполнения:

SET GLOBAL time_zone = timezone;

Вы можете, и кажется ты следует, установите его в файле конфигурации:

часовой пояс по умолчанию = '+ 0:00'

Документация говорит, что это допустимые значения для default-time-zone:

  1. Значение «СИСТЕМА» указывает, что часовой пояс должен быть таким же, как системный часовой пояс.

  2. Значение может быть указано в виде строки, указывающей смещение от UTC, например «+10: 00» или «-6: 00».

  3. Значение может быть указано в виде именованного часового пояса, например Europe / Helsinki, US / Eastern или MET. Именованные часовые пояса могут использоваться только в том случае, если таблицы информации о часовых поясах в базе данных mysql были созданы и заполнены.

Наконец, подключающийся к mysql клиент угадывает и предоставляет часовой пояс сеансу, тем самым влияя на некоторые функции даты / времени, что может вызвать головную боль.

Я тоже столкнулся с той же проблемой.

В моем случае часовой пояс сервера установлен на IST, но mysql ссылается на часовой пояс UTC.

Эта проблема возникла, поскольку я не перезапускал mysql после изменения часового пояса сервера.

перезапуск службы mysql будет работать!