zoukankan      html  css  js  c++  java
  • MySQL5.7.18参数log_timestamps导致日志信息时间差8小时

    MySQL5.7.18参数log_timestamps导致日志信息时间差8小时

    环境:MySQL5.7.18+CentOS6.8

    背景:

    排查问题查看mysql日志的时候发现mysql错误日志和慢查询日志中的时间戳信息比正常时间少了8小时.

    官方资料显示:

    log_timestamps 自5.7.2版本被引入,此参数控制了general log、error log、slow query log日志中

    时间戳的显示,默认使用的UTC。但是此参数不影响mysql.general_log, mysql.slow_log中写入信息的

    时间戳。在查询记录的时候,可以使用 CONVERT_TZ() 函数,或者设置会话级别的系统变量 time_zone

    来转换成所需要的时区。实则不然,我这是5.7.18版本也遇到同样的问题.

    此参数有UTC(默认值)和system的2个可选项,此参数是可以动态修改的。

    #进入mysql查询一下,然后动态修改.
    mysql> show variables like 'log_timestamps';
    +----------------+-------+
    | Variable_name  | Value |
    +----------------+-------+
    | log_timestamps | UTC   |
    +----------------+-------+
    1 row in set (0.00 sec)
    
    mysql> set global log_timestamps=system;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> show variables like 'log_timestamps';
    +----------------+--------+
    | Variable_name  | Value  |
    +----------------+--------+
    | log_timestamps | SYSTEM |
    +----------------+--------+
    1 row in set (0.00 sec)
    
    mysql> select now();
    +---------------------+
    | now()               |
    +---------------------+
    | 2020-08-06 09:58:48 |
    +---------------------+
    1 row in set (0.00 sec)
    
    #修改完成后,可以看到已经变成SYSTEM.那在配置文件my.cnf里再添加:
    [mysqld]
    log_timestamps=system
    
    #建议写入配置文件,这样以防重启失效.
    
    小补充:
    MySQL 8.0支持参数log_timestamps持久化设置
    设置为持久化参数:
    mysql> set persist log_timestamps=system;
    
    
  • 相关阅读:
    Linux系统安全及应用
    Linux 10 进程和计划的管理任务
    Centos netdata 的安装及配置
    Centos nmon安装及使用
    Python 各种数据类型的了解(上)
    神奇的循环知识
    Pathon的基础知识
    初次遇见Python
    操作系统与编程语言的简介
    计算机硬件基础
  • 原文地址:https://www.cnblogs.com/longren/p/13445142.html
Copyright © 2011-2022 走看看