Назад | Перейти на главную страницу

MySQL регистрирует другое время, чем NOW ()

Сервер MySQL регистрирует записи с другим временем, чем система или сам mysql:

mysql> select @@global.time_zone;
+--------------------+
| @@global.time_zone |
+--------------------+
| SYSTEM             |
+--------------------+
mysql> select NOW();
+---------------------+
| NOW()               |
+---------------------+
| 2016-02-24 10:47:30 |
+---------------------+

# /var/log/mysql/mysql_queries.log
2016-02-24T18:47:11.191126Z    2 Connect        root@localhost on  using Socket
2016-02-24T18:47:11.191421Z    2 Query  select @@version_comment limit 1
2016-02-24T18:47:16.769493Z    2 Query  select @@global.time_zone
2016-02-24T18:47:30.503214Z    2 Query  select NOW()

Временная метка кажется синхронизированной с журналом:

mysql> show variables;
timestamp               | 1456339753.062182 # 18:47
log_timestamps          | UTC

Решение было очень простым: просмотрите переменные и попытайтесь найти подходящие:

log_timestamps                   | UTC

Поэтому я изменил его на «СИСТЕМА»:

mysql> SET GLOBAL  log_timestamps  = 'SYSTEM';

# /var/log/mysql/mysql_queries.log
2016-02-24T18:54:23.837289Z    2 Query  SET GLOBAL  log_timestamps  = 'SYSTEM'
2016-02-24T10:54:25.949232-08:00    2 Query     show variables

Время в журнале переключилось с 18:54 на 10:54 как должно.

Из документации MySQL:

  • log_timestamps

Эта переменная контролирует часовой пояс отметки времени сообщений журнала ошибок и общего журнала запросов и сообщений журнала медленных запросов, записанных в файлы. Это не влияет на часовой пояс общего журнала запросов и сообщений журнала медленных запросов, записываемых в таблицы (mysql.general_log, mysql.slow_log). Строки, полученные из этих таблиц, можно преобразовать из часового пояса локальной системы в любой желаемый часовой пояс с помощью CONVERT_TZ () или путем установки системной переменной session time_zone.

Если вы хотите сохранить изменения после перезапуска mysql или перезагрузки, поместите это в свой файл my.cnf:

log_timestamps   = 'SYSTEM'