2013-07-29 3 views
3

У меня проблема с convert_tz, возвращающая null в mysql.mysql convert_tz команда возвращает NULL

mysql --version 
mysql Ver 14.14 Distrib 5.6.11, for osx10.7 (x86_64) using EditLine wrapper 

я прочитал руководство http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html я запустил эту команду: Баш-3,2 # mysql_tzinfo_to_sql/USR/доли/ZoneInfo | mysql -u root -p mysql Введите пароль: Предупреждение: Невозможно загрузить '/ usr/share/zoneinfo/+ VERSION' в качестве часового пояса. пропуская его.

Warning: Unable to load '/usr/share/zoneinfo/Asia/Riyadh87' as time zone. Skipping it. 
Warning: Unable to load '/usr/share/zoneinfo/Asia/Riyadh88' as time zone. Skipping it. 
Warning: Unable to load '/usr/share/zoneinfo/Asia/Riyadh89' as time zone. Skipping it. 
Warning: Unable to load '/usr/share/zoneinfo/Mideast/Riyadh87' as time zone. Skipping it. 
Warning: Unable to load '/usr/share/zoneinfo/Mideast/Riyadh88' as time zone. Skipping it. 
Warning: Unable to load '/usr/share/zoneinfo/Mideast/Riyadh89' as time zone. Skipping it. 
ERROR 1406 (22001) at line 38916: Data too long for column 'Abbreviation' at row 1 

Затем, используя mysql, я выполнил эту команду. SELECT CONVERT_TZ ('2004-01-01 12:00:00', 'GMT', 'EST'); который возвращает null. Я могу подтвердить, что таблица mysql.time_zone_transition_type имеет записи GMT и EST.

ответ

0

** обновление, я исправил это, используя окно linux для создания файла sql: mysql_tzinfo_to_sql/usr/share/zoneinfo, а затем импортировал этот файл в мой mac mysql.

16

Другой способ обойти эту проблему, экспортировать mysql_tzinfo в текстовый файл для редактирования:

$ mysql_tzinfo_to_sql /usr/share/zoneinfo > tzinfo.sql 

Найти проблемную линию, в моем случае это была линия 38982, который был расщепленный запрос от линии 38982 для 38984:

INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES (@time_zone_id, 0, 0, 0, 'Local time zone must be set--see zic manual page'); 

Изменить его:

INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES (@time_zone_id, 0, 0, 0, 'UNSET'); 

Сохраните файл и вставить его в базу данных MySQL:

$ cat tzinfo.sql | mysql -u root mysql 

Источник: http://dev.mysql.com/doc/refman/4.1/en/time-zone-support.html
Испытано с MacOS 10.9.3, MySQL 5.6.15

+4

'mysql_tzinfo_to_sql/USR/доли/ZoneInfo | sed -e "s/Местный часовой пояс должен быть установлен - см. zic manual page/local /" | mysql -u root mysql', похоже, делает одно и то же в одной строке. работал на меня на ubuntu 14.04. –

Смежные вопросы