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

MySQL, PostgreSQL, InterBaseSQL etc

Модераторы: Art.i, vasya

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

Сообщение ijkl » Пт апр 03, 2015 8:13 am

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

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

Сообщение pepper » Пт апр 03, 2015 8:46 am

В mysql время попробуйте выставить так в /etc/my.cnf в секции mysqld:
default_time_zone='+00:00'
Сохранить, перезагрузить Mysqld.
pepper
Support team
 
Сообщений: 551
Зарегистрирован: Пн окт 07, 2013 4:06 am

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

Сообщение ijkl » Пт апр 03, 2015 3:37 pm

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

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

Причина ошибки меня волнует не меньше, чем сама ошибка. Неприятно, когда баг нашел, а причину не знаешь. Почему на другом таком же контейнере время в mysql установилось правильно без указания time_zone в my.cnf, а здесь нет?
ijkl
 
Сообщений: 215
Зарегистрирован: Чт окт 03, 2013 5:42 pm

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

Сообщение swg » Пт апр 03, 2015 4:00 pm

В php даты правильно, т.к. вероятно зона Europe/Moscow написана в php.ini , а время в UTC.
А вот на сервере часовой пояс может и неверен, в ssh date что показывает?
( p.s. установить на ubuntu так: dpkg-reconfigure tzdata )
swg
флудит форум
 
Сообщений: 2386
Зарегистрирован: Сб окт 07, 2006 9:09 am
Откуда: NNov

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

Сообщение ijkl » Пт апр 03, 2015 4:23 pm

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
ijkl
 
Сообщений: 215
Зарегистрирован: Чт окт 03, 2013 5:42 pm

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

Сообщение swg » Пт апр 03, 2015 4:35 pm

Хм. Ну если интересно, ещё
Код: выделить все
SELECT * FROM GLOBAL_VARIABLES WHERE variable_name LIKE "%TIME_ZONE%"
в БД information_schema. До и после изменения my.cnf есть разница?
swg
флудит форум
 
Сообщений: 2386
Зарегистрирован: Сб окт 07, 2006 9:09 am
Откуда: NNov

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

Сообщение ijkl » Пт апр 03, 2015 5:03 pm

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() показывает правильное время. Что за чудеса.

Повторю еще раз эксперимент.
ijkl
 
Сообщений: 215
Зарегистрирован: Чт окт 03, 2013 5:42 pm

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

Сообщение swg » Пт апр 03, 2015 5:09 pm

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

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

Сообщение ijkl » Пт апр 03, 2015 5:32 pm

Для чистоты эксперимента заново переустановил на контейнере 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 - это что такое?
ijkl
 
Сообщений: 215
Зарегистрирован: Чт окт 03, 2013 5:42 pm

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

Сообщение swg » Пт апр 03, 2015 5:37 pm

EDT – Eastern Daylight Time , как раз там сейчас 10, в МСК 17.
По умолчанию, зона в ubuntu (значит и Debian, давно перестал его использовать) именно такая.
Посмотрите, что date показывает.
Потом dpkg-reconfigure tzdata и в mysql все так и останется до перезапуска.
swg
флудит форум
 
Сообщений: 2386
Зарегистрирован: Сб окт 07, 2006 9:09 am
Откуда: NNov

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

Сообщение ijkl » Пт апр 03, 2015 5:57 pm

Да, все так и произошло. Почему же раньше MSK сам устанавливался?
ijkl
 
Сообщений: 215
Зарегистрирован: Чт окт 03, 2013 5:42 pm

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

Сообщение swg » Пт апр 03, 2015 6:02 pm

Значит кто-то его установил в шаблоне. Или панель, на этапе начальной конфигурации в ISPManager4 такое точно было.
swg
флудит форум
 
Сообщений: 2386
Зарегистрирован: Сб окт 07, 2006 9:09 am
Откуда: NNov


Вернуться в Базы данных

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

cron