暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL:log_timestamps参数使用详解

小小亮 2021-08-12
2399

背景

log_timestamps参数是MySQL在5.7.2版本新引入的参数,这个参数主要是控制MySQL的错误日志、慢查询日志、genera log等记录日志的显示时间参数,但不会影响写到表 (mysql.general_log, mysql.slow_log) 中的显示时间。

问题现象

某客户使用百度云RDS产品时发现,1月6号的慢查询日志中存在1月5号的时间戳,样例如下:

image.png

原因分析

经过百度云数据库工程师定位,确认是由于参数 log_timestamps=UTC 导致的。log_timestamps的取值含义如下:

  • UTC:使用UTC时间(Universal Time Coordinated),5.7版本默认取值UTC,显示的时间戳距离北京时间少8小时
  • SYSTEM:使用本地时间,本地时间=UTC+时区差

解决方案

登录百度云数据库控制台,在『参数配置』页面,找到log_timestamps参数,将UTC修改为SYSTEM即可

案例复现

1、log_timestamps=UTC登录RDS实例查看参数设置和当前系统时间:

image.png

执行测试SQL构造慢查询:

select sleep(10);

在慢日志中查看,UTC格式时间比本地时间少了8小时:

image.png

2、log_timestamps=SYSTEM在控制台-参数配置中修改取值设置:

image.png

登录RDS实例查看参数设置和当前系统时间:

image.png

执行测试SQL构造慢查询:

select sleep(10);

在慢日志中查看,显示的是本地时间:

image.png

文章来源:https://cloud.baidu.com/doc/RDS/s/Xk528mv4q
最后修改时间:2021-08-12 14:28:01
文章转载自小小亮,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论