log_timestamps参数使用详解
所有文档

          云数据库 RDS

          log_timestamps参数使用详解

          背景

          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

          上一篇
          innodb_strict_mode参数使用详解
          下一篇
          性能测试白皮书