Я просто пытаюсь заставить 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]?






Да, это серверная опция для mysqld, поэтому ее следует поместить в раздел [mysqld].
Также относительно значений см. Полное руководство по MySQL 5
Таблица часовых поясов MySQL не загружается по умолчанию, что может быть причиной возникновения трудностей. Вам нужно загрузить таблицу часовых поясов, а затем установить часовой пояс, используя приведенные выше инструкции.
К черту ... DATETIME, хотя при просмотре таблиц это намного приятнее, но этого кошмара не стоит.
Я просто собираюсь использовать TIMESTAMP.
Перейдите в раздел [mysqld] вашего файла my.ini и в этом разделе введите эту строку
default-time-zone = '+00:00'
«+00: 00» указывает смещение от GMT, которое в вашем случае будет 0. Обратите внимание на знак «+» в строке.
Вам не нужно устанавливать какие-либо таблицы часовых поясов для решения вашей проблемы. После перезапуска сервера ваш сервер будет работать в часовом поясе UTC и, следовательно, NOW () предоставит вам время в GMT.
По умолчанию MySQL настроен на ваш системный часовой пояс, т.е. часовой пояс вашего сервера совпадает с часовым поясом вашей системы. Таким образом, вы также можете изменить часовой пояс вашей системы, чтобы решить вашу проблему, хотя это не рекомендуется.
Не уверен, почему так много ответов, чтобы установить это вручную после запуска. Вы хотите, чтобы это было в конфиге. Установите и забудьте. :)
Чтобы сэкономить несколько кликов, список названий зон выглядит так:
select name from mysql.time_zone_name;
Остерегайтесь установки зоны с фиксированным смещением, такой как «GMT» или «+00: 00», поскольку она не будет изменяться в соответствии с местным временем / летним временем и т. д. Если вы хотите, чтобы она соответствовала местному времени, установите для зоны значение «Европа / Лондон». ' вместо. Если вы этого не хотите, я бы все равно выбрал UTC вместо GMT.
Я использую это для GMT + 2: УСТАНОВИТЬ GLOBAL time_zone = '+02: 00';
И что это за строка для GMT ... Мне еще предстоит найти таблицу, в которой перечислены допустимые значения для "часового пояса"