Fork me on GitHub

The WebDevil

Enjoy development

Баг: выполняем в консоли

$date
Tue Sep  4 20:26:45 EEST 2007

а выполнив в mysql

SELECT now();
+---------------------+
| now()               |
+---------------------+
| 2007-09-04 17:26:45 |
+---------------------+

Сразу понятно, что проблема во временных зонах. И правда,

 SHOW VARIABLES LIKE 'system_time_zone';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| system_time_zone |  UTC  |
+------------------+-------+

Бороться с этим можно двумя способами – или в переменную окружения TZ перед запуском mysqld_safe установить значение EET (или в какой зоне находитесь Вы), или запуская mysql_safe с ключиком –timezone=EET.

Второе помогло.

Спасибо за наводку DKAnze

2 Responses to “MySQL, FreeBSD and incorrect time”

  1. Это не баг – это фича. (с)
    Временная зона сервера на котором работает MySQL может отличаться от временной зоны, к которой привязаны хранимые данные.
    Например на одном из наших американских серверов хранятся данные о событиях с указанием украинского времени.

    Vadim Voituk

  2. Я прекрасно понимаю надобность подобной фичи, но как ее контролировать? Чтоб, грубо говоря, при коннекте из США и из Украины NOW() давало время с учетом временной зоны.

    dm