MySQL5.7 error log時間顯示問題

問題現象:MySQL日誌記錄時間和系統時間不一致mysql

當前系統時間sql

[root@bogon data]# date
Wed Nov 16 14:48:31 CST 2016
You have new mail in /var/spool/mail/root

MySQL顯示時間session

root@localhost [(none)]>select now();
+---------------------+
| now()               |
+---------------------+
| 2016-11-16 14:52:05 |
+---------------------+
1 row in set (0.00 sec)

日誌顯示時間socket

[root@bogon data]# /etc/init.d/mysqld start
Starting MySQL.... SUCCESS! 
You have new mail in /var/spool/mail/root
[root@bogon data]# tailf error.log 
2016-11-16T06:49:38.202954Z 0 [Note] InnoDB: Loading buffer pool(s) from /data/mysql/mysql3306/data/ib_buffer_pool
2016-11-16T06:49:38.440257Z 0 [Warning] Failed to set up SSL because of the following SSL library error: SSL context is not usable without certificate and private key
2016-11-16T06:49:38.440314Z 0 [Note] Server hostname (bind-address): '*'; port: 3306
2016-11-16T06:49:38.440426Z 0 [Note] IPv6 is available.
2016-11-16T06:49:38.440443Z 0 [Note]   - '::' resolves to '::';
2016-11-16T06:49:38.440471Z 0 [Note] Server socket created on IP: '::'.
2016-11-16T06:49:38.627893Z 0 [Note] InnoDB: Buffer pool(s) load completed at 161116 14:49:38
2016-11-16T06:49:38.871533Z 0 [Note] Event Scheduler: Loaded 0 events
2016-11-16T06:49:38.871938Z 0 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
Version: '5.7.14-log'  socket: '/tmp/mysql3306.sock'  port: 3306  MySQL Community Server (GPL)

 

 

問題緣由:日誌

看看官方的解釋吧code

log_timestamps

Introduced	5.7.2
Command-Line Format	--log_timestamps=#
System Variable	Name	log_timestamps
Variable Scope	Global
Dynamic Variable	Yes
Permitted Values	Type	enumeration
Default	UTC
Valid Values	UTC
SYSTEM
This variable controls the timestamp time zone of error log messages, and of general query log and slow query log messages written to files. It does not affect the time zone of general query log and slow query log messages written to tables (mysql.general_log, mysql.slow_log). Rows retrieved from those tables can be converted from the local system time zone to any desired time zone with CONVERT_TZ() or by setting the session time_zone system variable.

Permitted log_timestamps values are UTC (the default) and SYSTEM (local system time zone).

Timestamps are written using ISO 8601 / RFC 3339 format: YYYY-MM-DDThh:mm:ss.uuuuuu plus a tail value of Z signifying Zulu time (UTC) or ±hh:mm (an offset from UTC).

This variable was added in MySQL 5.7.2. Before 5.7.2, timestamps in log messages were written using the local system time zone by default, not UTC. If you want the previous log message time zone default, set log_timestamps=SYSTEM.

大概意思是這樣的,這個參數是5.7.2引進來的,主要控制記錄日誌的時間戳,不影響general log和slow log寫表。orm

 

 

解決辦法:server

它的默認設置是UTC,若是你想改變默認設置,set log_timestamps=SYSTEM就能夠了。注意這個變量的做用域是global作用域

root@localhost [(none)]>SHOW GLOBAL VARIABLES LIKE 'log_timestamps';
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    3
Current database: *** NONE ***

+----------------+-------+
| Variable_name  | Value |
+----------------+-------+
| log_timestamps | UTC   |
+----------------+-------+
1 row in set (0.01 sec)

root@localhost [(none)]>set global log_timestamps=SYSTEM;
Query OK, 0 rows affected (0.00 sec)

root@localhost [(none)]>SHOW GLOBAL VARIABLES LIKE 'log_timestamps';
+----------------+--------+
| Variable_name  | Value  |
+----------------+--------+
| log_timestamps | SYSTEM |
+----------------+--------+
1 row in set (0.00 sec)
相關文章
相關標籤/搜索