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 точно корректна.
Надеюсь, кому-то будет полезно.
Ооо спасибо большое а то я мучался с часами на компьютере) уже даже 1 раз опоздать из за этого успел.