Невозможно изменить часовой пояс сервера Mysql

У нас установлен часовой пояс IST (индийское стандартное время) для начала -

mysql> show global variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | IST    |
| time_zone        | SYSTEM |
+------------------+--------+


SELECT @@global.time_zone, @@session.time_zone;
+--------------------+---------------------+
| @@global.time_zone | @@session.time_zone |
+--------------------+---------------------+
| SYSTEM             | SYSTEM              |
+--------------------+---------------------+
1 row in set (0.00 sec)

mysql> select NOW();
+---------------------+
| NOW()               |
+---------------------+
| 2017-10-31 17:05:26 |
+---------------------+

Выше показывает то же время, что и время сервера, которое также указано в IST.

Мы хотим изменить его на UTC. По сравнению с сервером, где часовой пояс является UTC, единственное другое значение на этом сервере, кажется, system_time_zone переменная, которая установлена ​​в IST, как показано выше.

Не уверен, какую переменную / конфиг изменить.

Мы пытались изменить default-time-zone в my.ini, но это изменило time_zone переменная, а не system_time_zone,

Следующее также попытается обновить time_zone как я понял - SET GLOBAL time_zone="+00:00";

Так что, не уверен, что обновит system_time_zone,

Уже проверил /questions/31217832/kak-izmenit-bazu-dannyih-mysql-na-utc/31217842#31217842 Не уверен, в чем именно разница между system_time_zone и time_zone.

Также в документации Mysql говорится:

Допустимые значения для --timezone или TZ зависят от системы.

Невозможно найти подходящее значение для IST на серверах Windows и Cent OS. Из этой статьи, кажется, нужно некоторое расследование. Может кто-нибудь помочь здесь? Любые указатели.

Фон

Я хочу видеть разницу во времени в 5:30 часов select NOW(); на сервере. В настоящее время он отображает то же время, что и время сервера приложений (которое также является IST). Мы пытаемся добавить это несоответствие, чтобы воспроизвести тестовый сценарий.

Обновить

Получение следующего в моей настройке Windows -

mysql> SET time_zone = 'Asia/Kolkata';
ERROR 1298 (HY000): Unknown or incorrect time zone: 'Asia/Kolkata'
mysql> SET time_zone = "Asia/Kolkata";
ERROR 1298 (HY000): Unknown or incorrect time zone: 'Asia/Kolkata'
mysql> SET time_zone = "UTC";
ERROR 1298 (HY000): Unknown or incorrect time zone: 'UTC'

1 ответ

По умолчанию системный часовой пояс вашего программного обеспечения MySQL установлен на часовой пояс вашего сервера. Это то что SYSTEM значит в этой обстановке. В свою очередь, ваш сервер настроен на индийское время.

Обратите внимание, что сейчас () и TIMESTAMP данные всегда переводятся в местное время при отображении или поиске. Местное время определяется настройкой time_zone переменная, либо установленная для вашего соединения MySQL, либо глобальная.

Попробуйте эту последовательность и посмотрите, получите ли вы СЕЙЧАС () в UTC, а затем в индийское время. Эта последовательность устанавливает ваше соединение time_zone переменная. При этом он переопределяет настройки системы.

 SET time_zone = 'UTC';
 SELECT NOW();
 SET time_zone = 'Asia/Kolkata';  /* zoneinfo name for India time */
 SELECT NOW();

Если вы получите то, что ожидаете, вы можете изменить настройку часового пояса по умолчанию на вашем сервере с индийского времени на UTC. Как правило, это хорошая практика. То, как вы это сделаете, зависит от операционной системы вашего сервера. Это говорит о том, как сделать это для Ubuntu.

https://askubuntu.com/questions/323131/setting-timezone-from-terminal

Или вы можете отредактировать ваш конфигурационный файл MySQL, добавив в него следующую строку:

 default-time-zone='UTC'

и перезапустите серверное программное обеспечение MySQL.

В США, где у нас целая куча часовых поясов, обычно полезно установить значение по умолчанию UTC. Затем мы разрешаем пользователям выбирать предпочтения часового пояса при регистрации для использования веб-приложения. Возможно, если ваше веб-приложение полностью для Индии, вам не нужна дополнительная сложность.

Другие вопросы по тегам