• MySQL 8.0 日志配置管理 Linux运维


    1.错误日志

    #配置:
    默认位置:
    log_error=$DATDDIR/hostname.err
    看日志: 主要关注 [ERROR],deadlock
    # 默认开了,默认位置 datadir=/data/3306/data/HOSTNAME.err
    # 控制参数 log_error=/data/3306/err.log, 
    # 注意: 日志和数据分开存储 例如: /mysqllog/3306/mysql-err.log
    [root@localhost ~]# cat /etc/my.cnf
    [mysqld]
    user=mysql
    basedir=/usr/local/mysql
    datadir=/data/3306/data
    server_id=51
    port=3306
    socket=/tmp/mysql.sock
    log_error=/data/3306/log/mysql-err.log
    [root@localhost ~]# mkdir -p /data/3306/log/
    [root@localhost ~]# touch /data/3306/log/mysql-err.log
    [root@localhost ~]# chown -R mysql.mysql /data/
    [root@localhost ~]# /etc/init.d/mysqld restart

    #错误日志:收集有以下日志
    启动故障
    主从故障
    死锁
    数据库hang,堆栈信息


    #主要关注: [ERROR]
    [ERROR] [MY-000068] [Server] unknown option ---》 配置文件有问题

    #日志记录级别
    mysql> show variables like '%log_error%';
    +----------------------------+----------------------------------------+
    | Variable_name | Value |
    +----------------------------+----------------------------------------+
    | binlog_error_action | ABORT_SERVER |
    | log_error | /data/3306/log/mysql-err.log |
    | log_error_services | log_filter_internal; log_sink_internal |
    | log_error_suppression_list | |
    | log_error_verbosity | 2 | #可以调整级别,级别越大,日志越详细,对性能也有影响
    +----------------------------+----------------------------------------+

    mysql> set global log_error_verbosity=3
    1.错误信息;
    2.错误信息和告警信息;
    3.错误信息、告警信息和通知信息。

    #如果mysql启动不了,而且日志中没有记录,可以用mysld & 将日志打印在屏幕上
    mysqld & #相当于后台启动,同时日志打印在屏幕上

    2.二进制日志(binlog)

    #1.作用
     binlog 作用
      a.记录了MySQL 发生过的修改的操作的日志。,除了show select ,修改操作都会记录binlog
      b.数据恢复、主从、SQL问题排查、审计(工具:binlog2sql my2sql)
      
    #2.配置方法
     配置binlog
    1. 8.0默认开启binlog 
    2. 默认在datadir binlog.0000001
    3. 建议日志和数据分开存储
    4. 参数 server_id=111 log_bin=路径/文件名前缀
    
    #3.显示配置文档
    [root@db01 /data/3306/log14:51:10]# cat /etc/my.cnf
    [mysql]
    socket=/tmp/mysql.sock
    [mysqld]
    user=mysql
    datadir=/data/3306/data
    basedir=/usr/local/mysql
    socket=/tmp/mysql.sock
    server_id=51
    log_error=/data/3306/log/mysql-err.log
    log_bin=/data/3306/log/mysql-bin
    [root@localhost ~]# /etc/init.d/mysqld restart
    #4.确认配置binlog启效
    [root@db01 /data/3306/log14:52:13]# ll
    total 12
    -rw-r----- 1 mysql mysql  156 Apr 12 14:51 mysql-bin.000001
    -rw-r----- 1 mysql mysql   32 Apr 12 14:51 mysql-bin.index
    -rw-r--r-- 1 mysql mysql 2798 Apr 12 14:51 mysql-err.log

    3.慢日志(slow_log)

    #1.作用
     记录MySQL工作中,运行较慢的语句。用来定位SQL语句性能问题。
    
    #2.配置方法
     开关:
    slow_query_log=1                               #默认为0,表示关闭
    slow_query_log_file=/data/3306/log/slow.log    #慢日志路径
    
    维度: #在线设置
    set global slow_query_log=1
    set global long_query_time=0.5
    set global log_queries_not_using_indexes=1
    set global log_throttle_queries_not_using_indexes=1000
    
    #3.确认配置文档
    [root@db01 /etc/init.d15:19:00]# cat /etc/my.cnf
    [mysql]
    socket=/tmp/mysql.sock
    [mysqld]
    user=mysql
    datadir=/data/3306/data
    basedir=/usr/local/mysql
    socket=/tmp/mysql.sock
    server_id=51
    log_error=/data/3306/log/mysql-err.log
    log_bin=/data/3306/log/mysql-bin
    slow_query_log=1 
    slow_query_log_file=/data/3306/log/slow.log
    long_query_time=0.5
    log_queries_not_using_indexes=1
    log_throttle_queries_not_using_indexes=1000
    [root@localhost ~]# /etc/init.d/mysqld restart

    4.general_log

    #1.作用
     普通日志,会记录所有数据库发生的事件及语句。
     文本格式记录MySQL运行期间,所有的所作语句, 可以做问题诊断和调试
     
    #2.配置
    参数: general_log , general_log_file= 路径 
    general_log=1     #默认关闭状态  0
    general_log_file=/data/3306/log/genlog
    
    #3.确认配置生效
    [root@db01 /data/3306/log15:39:56]# cat /etc/my.cnf
    [mysql]
    socket=/tmp/mysql.sock
    [mysqld]
    user=mysql
    datadir=/data/3306/data
    basedir=/usr/local/mysql
    socket=/tmp/mysql.sock
    server_id=51
    log_error=/data/3306/log/mysql-err.log
    log_bin=/data/3306/log/mysql-bin
    slow_query_log=1 
    slow_query_log_file=/data/3306/log/slow.log
    long_query_time=0.5
    log_queries_not_using_indexes=1
    log_throttle_queries_not_using_indexes=1000
    general_log=1
    general_log_file=/data/3306/log/genlog
    
    [root@localhost ~]# /etc/init.d/mysqld restart
  • 相关阅读:
    Mybatis 学习过程中出现空指针异常的错误【已解决】
    IntelliJ IDEA的常用设置及快捷键
    The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone错误的解决办法【已解决】
    IntelliJ IDEA安装教程及使用方法
    OA项目笔记
    Linux常用命令大全(四)
    Linux常用命令大全(三)
    Linux常用命令大全(二)
    Linux常用命令大全(一)
    Apache配置默认首页
  • 原文地址:https://www.cnblogs.com/linuxmysql/p/16137732.html
Copyright © 2020-2023  润新知