Страница 1 из 1

Время в MySQL отстает на 7 ч

СообщениеДобавлено: Пт апр 03, 2015 8:13 am
ijkl
SELECT NOW() возвращает 2015-04-03 01:08:44, когда на самом деле 2015-04-03 08:08:44.
SELECT UNIX_TIMESTAMP() выдает правильный.
В чем проблема?
В ISPmanagere устанавливал Europe/Moscow. Да и на PHP все даты правильно.

Re: Время в MySQL отстает на 7 ч

СообщениеДобавлено: Пт апр 03, 2015 8:46 am
pepper
В mysql время попробуйте выставить так в /etc/my.cnf в секции mysqld:
default_time_zone='+00:00'
Сохранить, перезагрузить Mysqld.

Re: Время в MySQL отстает на 7 ч

СообщениеДобавлено: Пт апр 03, 2015 3:37 pm
ijkl
pepper писал(а):В mysql время попробуйте выставить так в /etc/my.cnf в секции mysqld:
default_time_zone='+00:00'
Сохранить, перезагрузить Mysqld.

Вроде помогло. Только я в документациях не нашел default_time_zone, гуглится только time_zone.

Причина ошибки меня волнует не меньше, чем сама ошибка. Неприятно, когда баг нашел, а причину не знаешь. Почему на другом таком же контейнере время в mysql установилось правильно без указания time_zone в my.cnf, а здесь нет?

Re: Время в MySQL отстает на 7 ч

СообщениеДобавлено: Пт апр 03, 2015 4:00 pm
swg
В php даты правильно, т.к. вероятно зона Europe/Moscow написана в php.ini , а время в UTC.
А вот на сервере часовой пояс может и неверен, в ssh date что показывает?
( p.s. установить на ubuntu так: dpkg-reconfigure tzdata )

Re: Время в MySQL отстает на 7 ч

СообщениеДобавлено: Пт апр 03, 2015 4:23 pm
ijkl
swg писал(а):В php даты правильно, т.к. вероятно зона Europe/Moscow написана в php.ini , а время в UTC.
А вот на сервере часовой пояс может и неверен, в ssh date что показывает?
( p.s. установить на ubuntu так: dpkg-reconfigure tzdata )
Я уже снес Убунту и вернулся на стандартный Дебиан7+панель:) На Убунту texlive оказался такой же, а проблем с ней больше, к примеру, с тем же PHP.

Раньше я ставил Дебиан7+панель и все было нормально с временем в MySQL. Неприятно, что такое непостоянство. Делаешь одно и то же, а результат разный. Может быть разница от того, что раньше была первая установка, а теперь переустановка контейнера?

сервер дату правильную показывает
Код: выделить все
~# date
Fri Apr  3 16:20:26 MSK 2015

Re: Время в MySQL отстает на 7 ч

СообщениеДобавлено: Пт апр 03, 2015 4:35 pm
swg
Хм. Ну если интересно, ещё
Код: выделить все
SELECT * FROM GLOBAL_VARIABLES WHERE variable_name LIKE "%TIME_ZONE%"
в БД information_schema. До и после изменения my.cnf есть разница?

Re: Время в MySQL отстает на 7 ч

СообщениеДобавлено: Пт апр 03, 2015 5:03 pm
ijkl
swg писал(а):Хм. Ну если интересно, ещё
Код: выделить все
SELECT * FROM GLOBAL_VARIABLES WHERE variable_name LIKE "%TIME_ZONE%"
в БД information_schema. До и после изменения my.cnf есть разница?


С дефолтным конфигом
Код: выделить все
VARIABLE_NAME    |   VARIABLE_VALUE
TIME_ZONE            |   SYSTEM
SYSTEM_TIME_ZONE    |   MSK


Потом поставил в [mysqld] time_zone = '+00:00'

Вообще перестал работать.

Убрал time_zone = '+00:00' . Теперь now() показывает правильное время. Что за чудеса.

Повторю еще раз эксперимент.

Re: Время в MySQL отстает на 7 ч

СообщениеДобавлено: Пт апр 03, 2015 5:09 pm
swg
Еще, как вариант, после смены часового пояса (не коррекции времени), если не перезапустить apache, mysqld, exim4 бывают чудеса.
p.s. Просто, как пример, из моего последнего, если вы добавите ssl домен и делаете "кошерный" apachectl restart (gracefully restart), то всё отрабатывает, но FF и Chrome начинает ругаться на новый сертификат; после /etc/init.d/apache2 restart всё сразу приходит в норму.

Re: Время в MySQL отстает на 7 ч

СообщениеДобавлено: Пт апр 03, 2015 5:32 pm
ijkl
Для чистоты эксперимента заново переустановил на контейнере Debian:)
Зашел в панельку, создал пользователя, зашел под пользователем, создал бд. Зашел в phpmyadmin, сделал запрос

Код: выделить все
SELECT * FROM GLOBAL_VARIABLES WHERE variable_name LIKE "%TIME_ZONE%"


Результат
Код: выделить все
VARIABLE_NAME    |  VARIABLE_VALUE
TIME_ZONE            | SYSTEM
SYSTEM_TIME_ZONE    |  EDT


SELECT NOW() отстает на 7ч как и раньше.

EDT - это что такое?

Re: Время в MySQL отстает на 7 ч

СообщениеДобавлено: Пт апр 03, 2015 5:37 pm
swg
EDT – Eastern Daylight Time , как раз там сейчас 10, в МСК 17.
По умолчанию, зона в ubuntu (значит и Debian, давно перестал его использовать) именно такая.
Посмотрите, что date показывает.
Потом dpkg-reconfigure tzdata и в mysql все так и останется до перезапуска.

Re: Время в MySQL отстает на 7 ч

СообщениеДобавлено: Пт апр 03, 2015 5:57 pm
ijkl
Да, все так и произошло. Почему же раньше MSK сам устанавливался?

Re: Время в MySQL отстает на 7 ч

СообщениеДобавлено: Пт апр 03, 2015 6:02 pm
swg
Значит кто-то его установил в шаблоне. Или панель, на этапе начальной конфигурации в ISPManager4 такое точно было.