MYSQL--- 日志类相关问题

文章目录

    • 1. 相关面试问题
    • 2. 常用的mysql 日志及使用场景
      • 2.1 mysql 常用的日志类型
        • err_log
        • general_log
        • 慢查询日志 slow_query_log
        • 二进制日志 (binary_log) 非常重要
        • 中继日志(relay_log)

1. 相关面试问题

常用的mysql 日志有哪些?我们在什么情况下使用这些日志?
如何通过日志来审计用户活动?

2. 常用的mysql 日志及使用场景

知识点:

  • mysql 常用的日志类型
  • 各种日志的配置和使用场景

2.1 mysql 常用的日志类型

MYSQL--- 日志类相关问题_第1张图片
【注】
bin_log: 主服务器上必须有;
relay_log: 可看成主服务器上的二进制日志在从服务器上的副本;

err_log

  • 分析排除mysql 运行错误
  • 记录未经授权的访问
  • 记录位置 : log_error = $mysql/sql_log/mysql-error.log
  • 错误级别 : log_error_verbosity = [1,2,3]
  • log_error_services = [日志服务组件; 日志服务组件] mysql 8.0 中增加

MYSQL--- 日志类相关问题_第2张图片
MYSQL--- 日志类相关问题_第3张图片

general_log

  • 分析客户端发送到mysql 的实际请求
  • 配置: general_log = [ON | OFF] 默认是关闭, 可以用set 开启
  • 存储路径: general_log_file = $mysql/sql_log/general.log
  • 还可以存储在文件、表中 : log_output = [FILE | TABLE |NONE]

慢查询日志 slow_query_log

  • 将执行成功并符合条件的查询记录到日志中
  • 找到需要优化的sql (执行时间长, 没有使用索引等)
  • 配置 : slow_query_log = [ON | OFF] 默认是关闭的
  • 存储路径: slow_query_log = $mysql/sql_log/slow_query.log
  • long_query_time = xx(秒) 当sql执行时间超过这个时间就会记录;设置为0,则记录所有sql记录
  • log_queries_not_using_indexes = [ON | OFF] 开启后,没有使用索引则会被记录
  • log_slow_admin_statements = [ON | OFF] 开启后记录管理命令
  • log_slow_slave_statements = [ON | OFF] 很少使用

二进制日志 (binary_log) 非常重要

  • 记录所有对数据库中数据的修改 (show, slect 不会被记录)
  • 基于时间点的备份和恢复
  • 主从复制(高可用实现必不可少)
  • 配置: log-bin [= base_name] 静态参数,在配置文件才能修改
  • binlog_format = [ROW | STATEMENT | MINED] 格式化, 默认 ROW
  • binlog_row_image = [FULL | MINIMAL | NOBLOB ] 默认 FULL
  • binlog_rows_query_log-events= [ON | OFF] 开启后能记录实际执行的sql 语句,默认关闭
  • log_slave_updates = [ON | OFF] 默认关闭
  • sync_binlog = [1 | 0 ] 默认 1 ;表示控制主动向磁盘刷新, 如果是0, 不会主动刷新
  • expire_logs_days = days 设置过期时间
  • PURGE BINARY LOGS TO ‘mysql-bin.010’ 删除之前的文件
  • PURGE BINARY LOGS TO BEFROE ’2022-04-03 22:22:22‘ 表示删除小于这个日期的日志文件

中继日志(relay_log)

  • 临时记录从主服务器同步的二进制日志
  • 配置:relay_log = filename
  • relay_log_purge = [ON | OFF] 表示是否对它进行清理

你可能感兴趣的:(【面试】数据库专栏,mysql,数据库,服务器)