Как настроить MySQL для использования GMT в Windows и Linux - PullRequest
24 голосов
/ 13 января 2009

Я просто пытаюсь заставить MySQL хранить время в GMT ...

Я прочитал документацию здесь: http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html

В файле параметров указано: default-time-zone = 'timezone'.

Тем не менее, я погуглил по нескольким различным терминам и не могу найти возможные значения, "часовой пояс" должен быть. Я также не знаю, где в my.ini (и в Linux my.cnf) поместить эту директиву. Ниже [msyqld]?

Ответы [ 6 ]

40 голосов
/ 13 января 2009

Перейдите в раздел [mysqld] вашего файла my.ini и в этом разделе введите эту строку

default-time-zone = '+00: 00'

«+ 00:00» указывает смещение от GMT, которое в вашем случае будет 0. Пожалуйста, обратите внимание на знак «+» в строке.

Вам не нужно устанавливать какие-либо таблицы часовых поясов для вашей проблемы. После перезапуска сервера ваш сервер будет работать в часовом поясе UTC и, следовательно, NOW () покажет вам время в GMT.

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

4 голосов
/ 04 ноября 2010

Просто, чтобы сохранить несколько кликов, список имен зон отображается так:

select name from mysql.time_zone_name;

Остерегайтесь установки зоны с фиксированным смещением, такой как «GMT» или «+00: 00», поскольку она не изменится в соответствии с местным временем / летним временем и т. Д. Если вы хотите, чтобы она следовала за местным временем, установите для зоны значение « Европа / Лондон 'вместо. Если ты не хочешь, я бы все равно пошел на UTC по Гринвичу.

3 голосов
/ 13 января 2009

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

2 голосов
/ 19 апреля 2012

Я использую это для GMT + 2: SET GLOBAL time_zone = '+02: 00';

1 голос
/ 13 января 2009

Винт это ... DATETIME, хотя при просмотре таблиц на глаз гораздо проще, но этот кошмар не стоит.

Я просто собираюсь использовать TIMESTAMP.

0 голосов
/ 13 января 2009

Да, это опция сервера для mysqld, поэтому ее следует поместить в раздел [mysqld].

Также о значениях см. Полное руководство по MySQL 5

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