开发者

MySQL8.0的工具日志配置管理方式

目录
  • 日志分类
  • 设置错误日志
    • 设置错误日志等级
    • 生效时间
  • 二进制日志(binlog)
    • 作用
    • 配置
  • 慢日志(slow_log)
    • 作用
  • general_log 业务sql
    • 总结

      日志分类

      • error log:错误日志
      • genernal log:普通日志
      • binlog:二进制日志
      • slow log:慢日志

      设置错误日志

      配置:
      默认位置:
      log_error=$DATDDIR/hostname.err
      看日志: 主要关注 [ERROR],deadlock
      [root@localhost ~]# # errorlog
      [root@localhost ~]# # 默认开了,默认位置 datadir=/data/3306/data/HOSTNAME.err
      [root@localhost ~]# # 控制参数 log_error=/data/3306/err.log, 注意: 最好是初始化之前设定好。
      [root@localhost ~]# # 注意: 日志和数据分开存储 例如: /mysqllog/3306/mysql-err.log
      [root@localhost ~]# vim /etc/my.cnf
      [root@localhost ~]# cat /etc/my.cnf
      [mysql]
      socket=/tmp/mysql.sock
      [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 ~]# chown -R mysql.mysql /data/
      [root@localhost ~]# /etc/init.d/mysqld restart
      Shutting down MySQL.... [ OK ]
      Starting MySQL.2021-11-20T14:58:53.264890Z mysqld_safe error: log-error set to
      '/data/3306/log/mysql-err.log', however file don't exists. Create writable for
      user 'mysql'.
      The server quit without updating PID file
      (/data/3306/data/[FAILED]t.localdomain.pid).
      [root@localhost ~]# touch /data/3306/log/mysql-err.log
      [root@localhost ~javascript]# chown -R mysql. /data/
      [root@localhost ~]# /etc/ipythonnit.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 |
      | javascriptlog_error | /data/3306/log/mysql-err.log |
      | log_error_servicesandroid | log_filter_internal; log_sink_internal |
      | log_error_suppression_list | |
      | log_error_verbosity | 2 |
      +----------------------------+----------------------------------------+
      5 rows in set (0.00 sec)
      
      

      MySQL8.0的工具日志配置管理方式

      生效时间

      mysql> set global log_error_verbosity=3; 下一次登录生效。

      MySQL8.0的工具日志配置管理方式

      二进制日志(binlog)

      作用

      记录了MySQL 发生过的修改的操作的日志。,除了show select ,修改操作都会记录binlog

      数据恢复、主从、SQL问题排查、审计(工具:binlog2sql my2sql)

      配置

      • 8.0默认开启binlog
      • 默认在datadir binlog.0000001
      • 建议日志和数据分开存储,避免磁盘IO 抢占。

      定义 参数 server_id=111

      log_bin=路径/文件名前缀

       cat /etc/my.cnf
      [mysql]
      socket=/tmp/mysql.sock
      [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
      log_bin=/data/3306/log/mysql-bin
      

      重启生效

      cd /data/3306/log/
      [root@localhost log]# ll
      total 24
      -rw-r----- 1 mysql mysql 156 Nov 20 23:26 mysql-bin.000001
      -rw-r----- 1 mysql mysql 32 Nov 20 23:26 mysql-bin.index
      

      慢日志(slow_log)

      作用

      记录MySQL工作中,运行较慢的语句。用来定位SQL语句性能问题。

      建议都在my.cnf 中配置,因为重启才能永久生效。

      开关:
      slow_query_log=1
      slow_query_log_file=
      维度:
      set global slow_query_log=1
      sehttp://www.devze.comt global long_query_time=0.5
      set global log_queries_not_using_indexes=1
      set global log_throttle_queries_not_using_indexes=1000;
      

      general_log 业务sql

      普通日志,会记录所有数据库发生的事件及语句

      [root@localhost ~]# # 普通日志 general_log
      [root@localhost ~]# # 文本格式记录MySQL运行期间,所有的所作语句, 可以做问题诊断和调试
      [root@localhost ~]# # 参数: general_log , general_log_file
      [root@localhost ~]# vim /etc/my.cnf
      [root@localhost ~]# cat /etc/my.cnf
      [mysql]
      socket=/tmp/mysql.sock
      [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
      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=on
      general_log_file=/data/3306/log/genlog
      

      总结

      以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

      0

      上一篇:

      下一篇:

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      最新数据库

      数据库排行榜