Решаем проблему отмены зимнего времени в России для FreeBSD и MySQL

1 ноября в России произошло знаменательное событие. Страна наконец решила встать с колен и быть "не как весь остальной мир". Переход на зимнее время был отменен. Я проснулся утром и офигел. Половина серверов перешла на зимнее время, а на второй половине уже стояли нужные апдейты. Больше всего пострадали сервера, на которых стоит старая FreeBSD. 10 лет назад они были просто настроены и до сих пор работают как часы. Но вот именно с часами и проблема.

В первую очередь начал искать поддержку у авторов FreeBSD. Оказалось, что нужный апдейт есть только для самой последней, 8 версии. Остальные версии по гениальному замыслу авторов недостойны апдейта. Есть сервер, на котором лежит конструктор "сделай сам", с помощью которого можно обновить любой сервер. Но он, к сожалению, оказался недоступен. Спас добрый человек по имени Dmitry Morozovsky, который просто выложил нужный файлик для FreeBSD. Вот эти нехитрые команды обновляют любую FreeBSD и ставят на нее правильную таймзону для Москвы:

cd /tmp 
fetch http://bsd.woozle.net/tzdata-moscow.tar 
tar xvpf tzdata-moscow.tar -C
date
rm tzdata-moscow.tar

С MySQL for Windows пришлось повозиться. Здесь opensource проявил себя во всей своей красе. Апдейта от девелоперов просто нет. Точнее он есть, но датирован 2010 годом. И когда будет нормальный апдейт, никто не знает. Вообще MySQL система прикольная. В unix она пользуется системной информацией о временных зонах. А вот под Windows держит свои собственные таблицы в системной базе. Кто мешает тупо брать время из системы, для меня большая загадка. Но оказалось, что в MySQL есть утилитка, которая собирает нужные таблички из юниксовой информации о таймзонах. Обратите внимание на глубину маразма: таблички нужны только для Windows, а информацию о них мы берем из unix ! Хорошо, что под рукой была юниксовая машинка с установленным MySQL. Итак, на юниксовой машинке запускаем волшебную команду:

mysql_tzupdate_to_sql /etc/share/zoneinfo >tz.sql

Далее скармливаем полученный tz.sql виндовому MySQL (выбираем базу mysql). Я выкладываю получившийся у меня файл, но не гарантирую, что информация об остальных временных зонах в нем актуальна. Зона Europe/Moscow точно корректна.

tz.tar.gz

Надеюсь, кому-то будет полезно.

1 comment to Решаем проблему отмены зимнего времени в России для FreeBSD и MySQL

Leave a Reply to Андрей Cancel reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>