mysql日志

mysql日志

1.四种日志(错误日志,二进制日志,查询日志,慢查询日志)

  • 错误日志

    记录mysql启动和停止时,以及在运行过程中发生任何严重错误时的相关信息。

    show variables like 'log_error%'; 找到错误日志文件路径
  • 二进制日志(默认没有开启)

    二进制日志(binlog)记录了所有的DDL(数据定义语言)语句和DML(数据操纵语言)语句,但是不包括数据查询语句。此日志对于灾难时的数据恢复起着及其重要的作用,mysql的主从复制,也是通过binlog和relaylog实现的。

    配置文件位置:/usr/my.cnf

    日志文件存放位置:配置时,给定了文件名但是没有指定路径,日志默认写入mysql的数据目录。

    #配置开启binlog日志,日志文件前缀为mysqlbin --->如:mysqlbin.000001,mysqlbin.000002
    log_bin=mysqlbin

    #配置二进制日志格式
    binlo_format=statement

    删除日志文件


    方法1:
    reset master

    方法2:删除mysqlbin.000003之前的所有日志文件 mysqlbin.000001 mysqlbin.000002
    purge master logs to 'mysqlbin.000003'

    方法3:删除yyyy-mm-dd hh24:mi:ss之前产生的所有日志
    purge master logs before 'yyyy-mm-dd hh24:mi:ss'

    方法4:设置日志过期天数 3天后过期
    --expire_logs_days=3
  • 查询日志

    记录了所有操作语句(默认不开启)


    #设置开启查询日志 0关闭 1开启
    general_log=1

    #设置日志文件名,默认host_name.log
    general_log_file=file_name
  • 慢查询日志(记录查询效率低的日志)

    记录查询时间超过参数long_query_time,并且扫描记录数不小于min_examined_row_limit的SQL语句。

    long_query_time默认10秒


    #默认时关闭的 0关闭 1开启
    slow_query_log=1

    #该参数用来指定慢查询日志的文件名
    slow_query_log_file=slow_query.log

    #配置查询的时间限制,超过这个时间将被认为是慢查询
    long_query_time=10
  • 补充:binlog 日志
    二进制日志,无关存储引擎,主要用来主从复制,数据恢复。
    三种格式:
    statement 记录DML sql
    优点:日志量小,减少了IO,提高了性能。
    缺点:部分sql会造成主从数据不一致。
    mysql5.7.7后默认格式改成row
    row 记录的是数据修改情况
    优点:不会出现数据问题
    缺点:日志量大,特别是alter table 的时候。
    mixed 混合模式,一般的复制使用statement模式保存binlog,statement模式无法复制的操作使用row模式保存binlog。

    sync_binlog参数控制刷盘时机:
    0:不去强制要求,由系统自行判断何时写入磁盘;
    1:每次commit的时候都要将binlog写入磁盘;
    N:每N个事务,才会将binlog写入磁盘。

posted @   java架构师1  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示