云数据库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参数使用详解
    下一篇
    性能测试白皮书