Изменение часового пояса подключения в MySQL - PullRequest
27 голосов
/ 01 апреля 2011

Мой сервер работает на MDT

Поэтому я использовал следующий для преобразования EST

SET  time_zone = '-5:00'

Но как я могу переключить его на EDT, потому что

While `EST` is only valid in winter, while in summer how to change it to `EDT`

Я просто пытаюсь использовать именованный часовой пояс.Но я получаю следующую ошибку

 #1298 - Unknown or incorrect time zone: 'America/Toronto'

Я не понимаю, как решить эту проблему

Как мне переключиться

UTC -05 на UTC-04

Ответы [ 5 ]

64 голосов
/ 05 июня 2013

Для Linux, BSD и Mac OS X, если вам нужно загрузить таблицу часовых поясов, сделайте следующее:

$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot mysql
11 голосов
/ 08 июня 2011

Поскольку вы используете Windows, вам придется импортировать таблицы описания часовых поясов на ваш сервер MySQL.

http://dev.mysql.com/downloads/timezones.html

4 голосов
/ 28 сентября 2016

Для меня на Windows с использованием WampServer :

  • загрузить версию POSIX с https://dev.mysql.com/downloads/timezones.html
  • распаковать ее
  • помещает все файлы в данные wamp mysql: C: \ wamp \ bin \ mysql \ mysql5.7.11 \ data \ mysql
  • перезапускает wamp

Подробнее:

«Чтобы использовать пакет часовых поясов, содержащий файлы .frm, .MYD и .MYI для таблиц часовых поясов MyISAM, загрузите и распакуйте его.Эти табличные файлы являются частью базы данных mysql, поэтому вы должны поместить эти файлы в каталог mysqlsub каталога данных вашего сервера MySQL.Остановите сервер перед этим и перезапустите его позже »

http://dev.mysql.com/doc/refman/5.7/en/time-zone-support.html#time-zone-installation

1 голос
/ 01 апреля 2011

Вы пытались использовать имя зоны информации, например, "America / New_York" вместо сокращения (которое действует только половину времени)?

В идеале вам не следует вообще использовать часовой пояс сервера - сохраняйте даты в UTC и затем конвертируйте их в соответствующий часовой пояс в коде клиента. (Обратите внимание, что это зависит от того, что вы храните. Будущие значения даты / времени, указанные пользователем с часовым поясом, должны храниться таким образом, а не преобразовываться в любой другой часовой пояс, если правила меняются между текущей и будущей датой / временем. Но для моментов времени, записанных машинами, например, для ведения журнала, транзакций и т. д., я определенно буду хранить UTC. Я бы никогда не предложил хранить «только местное время» и предполагать, что сервер и у клиента такие же правила ".)

0 голосов
/ 07 июня 2019

Просто ради полноты пользователи Mac могут найти утилиту mysql_tzinfo_to_sql в каталоге /usr/local/mysql/bin.

Следовательно, полная команда будет /usr/local/mysql/bin/mysql_tzinfo_to_sql /usr/share/zoneinfo | ./mysql -p -u root mysql

Я потратилчасов, чтобы найти утилиту, вышеуказанный путь может спасти ваш!

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