MySQL 5.7 时间显示修改(log_timestamps UTC)

在MySQL 5.7版本中,日志记录时间发生了变化,使用了UTC方式来记录日志时间,也就是说这是个世界统一时间,与我们常用的本地时间不协调,因此,初始化MySQL 5.7之后,需要对此做出调整,如下本文的描述。

一、错误日志的时间格式

当前环境
[robin@ydq-mnt ~]$ more /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[robin@ydq-mnt ~]$ mysql -V
mysql Ver 14.14 Distrib 5.7.19-17, for Linux (x86_64) using 6.2

[root@ydq-mnt ~]#  date  ###系统时间
Mon Dec 18 14:23:16 CST 2018

[root@ydq-mnt ~]# more /var/log/mysqld.log   ###mysql 日志输出信息
2017-12-18T07:50:40.575098Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated.
Please use --explicit_defaults_for_timestamp server option (see do
cumentation for more details).
2017-12-18T07:50:40.576375Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.19-17-57-log) starting as process 9268 ...
2017-12-18T07:50:40.578287Z 0 [Warning] No argument was provided to --log-bin, and --log-bin-index was not used;
so replication may break when this MySQL serve
r acts as a master and has his hostname changed!! Please use '--log-bin=ydq-mnt-bin' to avoid this problem.
2017-12-18T07:50:40.578320Z 0 [Note] WSREP: Setting wsrep_ready to false
2017-12-18T07:50:40.578330Z 0 [Note] WSREP: No pre-stored wsrep-start position found. Skipping position initialization.
2017-12-18T07:50:40.578335Z 0 [Note] WSREP: wsrep_load(): loading provider library '/usr/lib64/galera3/libgalera_smm.so'
2017-12-18T07:50:40.582014Z 0 [Note] WSREP: wsrep_load(): Galera 3.22(r8678538) by Codership Oy
<info@codership.com> loaded successfully.
从上所示,当前的系统时间为mysql日志记录的时间不一致。

二、系统变量log_timestamps

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.
从上描述可知,这个变量是在MySQL 5.7.2中添加的。缺省值为UTC。
如果如要使用缺省时区的时间,修改该参数的值为SYSTEM

三、修改及验证

mysql> set global log_timestamps='SYSTEM';
Query OK, 0 rows affected (0.00 sec)

[root@ydq-mnt mysql]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
log_timestamps=SYSTEM

[root@ydq-mnt ~]# systemctl restart mysql
2017-12-18T07:52:41.543983Z 0 [Note] Beginning of list of non-natively partitioned tables
2017-12-18T07:52:41.544128Z 0 [Note] WSREP: Member 0.0 (ydq-mnt) synced with group.
2017-12-18T07:52:41.544138Z 0 [Note] WSREP: Shifting JOINED -> SYNCED (TO: 4163)
2017-12-18T07:52:41.550738Z 8 [Note] WSREP: Synchronized with group, ready for connections
2017-12-18T07:52:41.550755Z 8 [Note] WSREP: This node is synced, setting wsrep_ready to true
2017-12-18T07:52:41.550761Z 8 [Note] WSREP: wsrep_notify_cmd is not defined, skipping notification.
2017-12-18T07:52:41.582207Z 0 [Note] End of list of non-natively partitioned tables
2017-12-18T07:52:43.178826Z 0 [Note] InnoDB: Buffer pool(s) load completed at 171218 15:52:43
2017-12-18T16:24:23.588881+08:00 0 [Note] WSREP: Received shutdown signal. Will sleep for 10 secs before initiating shutdown.
pxc_maint_mode switched to SHUTDOWN
2017-12-18T16:24:33.591354+08:00 0 [Note] WSREP: Stop replication
2017-12-18T16:24:33.591408+08:00 0 [Note] WSREP: Closing send monitor...
2017-12-18T16:24:33.591429+08:00 0 [Note] WSREP: Closed send monitor.
2017-12-18T16:24:33.591453+08:00 0 [Note] WSREP: gcomm: terminating thread
2017-12-18T16:24:33.591477+08:00 0 [Note] WSREP: gcomm: joining thread
2017-12-18T16:24:33.591700+08:00 0 [Note] WSREP: gcomm: closing backend
再次启动及验证,时间显示与系统时间一致。
时间: 2018-01-02

MySQL 5.7 时间显示修改(log_timestamps UTC)的相关文章

js实现时间显示几天前、几小时前或者几分钟前的方法集锦

  这篇文章主要介绍了js实现时间显示几天前.几小时前或者几分钟前的方法,实例汇总分析了时间显示格式转换的常用思路与技巧,需要的朋友可以参考下 这里汇总了js实现时间显示几天前.几小时前或者几分钟前的常见方法.分享给大家供大家参考.具体如下: 方法一: 个人做法是保存时间戳,然后在前端用jq插件做转换,比如 smart-time-ago 方法二: (通过freemarker模板)如果用freemarker模板可以这样写,别的模板类推 根据自己的意愿修改条件和输出,把你的datetime传进去即可

优化WordPress中文章与评论的时间显示_php技巧

很多博客都喜欢用 评论发表于 "XXX 分钟 之前".文章发表于 "XXX 分钟 之前"来显示文章评论的时间,改善的时间显示方式不仅能很直观的告诉读者这篇文章或评论发表距今已有多长时间,更能增强评论回复的时间感,哥很喜欢,因为前一阵子压在手里的东西太多了,工作日白天又苦于不能上网,所以主题的样式及功能部分一点一点的写拖了好长时间,最近这阵子刚好轮到折腾评论了,所以就逐步参照网上流行的样式一点一点的修改起来自己的评论样式和功能. So-.. Go-.. 交道麻袋-..

时间下拉框-求助,关于一个时间显示的问题?

问题描述 求助,关于一个时间显示的问题? 目前,有这么一个问题,我有一个下拉框的时间显示,是每半个小时. 目前显示的效果: 09:00-09:30 09:30-10:30 10:00-10:30 ... 17:00-17:30 我想实现的效果就是,如果我现在是十点钟,怎么让10:00或者10:30之前的时间不在下拉框里面显示? 解决方案 定义一个数组,存入你要显示的字段,每次点击下拉框的时候修改Items,只加载有用的就可以了.

Mysql日期和时间函数总结

一.MySQL 获得当前日期时间函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +---------------------+ | now() | +---------------------+ | 2008-08-08 22:20:46 | +---------------------+ 除now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数: current_timestamp() current_time

Windows 10设置系统时间显示到秒的方法

在电脑的任务栏右侧会显示系统时间,往往只显示到分,而一位Win10用户想让系统时间显示到秒,这该如何操作呢?操作方法其实很简单,我们只要在注册表修改一个值即可,具体操作方法如下. 方法\步骤: 1.在Cortana搜索栏输入regedit,按回车键进入注册表编辑器; 2.定位到:HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced,新建DWORD(32位)值,命名为ShowSecondsInSy

来电显示修改:网络IP电话网关的漏洞

■ 核心提示 通信技术和计算机技术快速融合,通信网络在结构和功能上也发生了巨大变化,这种变化主要表现在通信网络的IP化和业务网络的开放性上,传统通信网络的基于硬件的管理模式已不能适应现代通信网络发展的需要,通信网络软件化成了未来发展趋势.在上述案件中,犯罪分子充分利用了通信网络中电话号码可以通过软件进行任意修改这一特性实施犯罪活动. 制作一个网关夹在主叫方与电信公司的网关中间,修改主叫号码后再把修改结果送入电信公司的网关系统中 手机上显示着好朋友的电话,接通后却是陌生人再说话,寒暄没几句就张口借

MySQL 获得当前日期时间的函数小结_Mysql

1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +---------------------+ | now() | +---------------------+ | 2008-08-08 22:20:46 | +---------------------+ 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数: current_timestamp() ,current_timestamp ,localtime

MySQL中from_unixtime()时间格式化函数用法

函数:FROM_UNIXTIME作用:将MYSQL中以INT(11)存储的时间以"YYYY-MM-DD"格式来显示. 语法:FROM_UNIXTIME(unix_timestamp,format) 返回表示 Unix 时间标记的一个字符串,根据format字符串格式化.format可以包含与DATE_FORMAT()函数列出的条目同样的修饰符. 根据format字符串格式化date值. from_unixtime()是MySQL里的时间函数 date为需要处理的参数(该参数是Unix

python获得文件创建时间和修改时间的方法

  本文实例讲述了python获得文件创建时间和修改时间的方法.分享给大家供大家参考.具体如下: 这里需要用户从控制台输入文件路径 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import os.path, time import exceptions class TypeError (Exception): pass if __name__ == '__main__': if (len(os.sys.argv) < 1): raise TypeError() else