aaa*_*ica 3 mysql time logging
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()
Run Code Online (Sandbox Code Playgroud)
时间戳似乎与日志同步:
mysql> show variables;
timestamp | 1456339753.062182 # 18:47
log_timestamps | UTC
Run Code Online (Sandbox Code Playgroud)
解决方案非常简单:查看变量并尝试找到相关的:
log_timestamps | UTC
Run Code Online (Sandbox Code Playgroud)
所以我把它改成了'SYSTEM':
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
Run Code Online (Sandbox Code Playgroud)
日志中的时间应该从 18:54 切换到 10:54。
- 日志时间戳
此变量控制错误日志消息以及写入文件的一般查询日志和慢速查询日志消息的时间戳时区。它不影响写入表(mysql.general_log、mysql.slow_log)的一般查询日志和慢查询日志消息的时区。可以使用 CONVERT_TZ() 或通过设置会话 time_zone 系统变量将从这些表中检索到的行从本地系统时区转换为任何所需的时区。