1、错误日志:

  (1)查看日志地址

    select @@log_error;

  (2)更改日志地址

    log_error=/tmp/mysql3306err.log

-----------------------------------------------------------------------------------------------------------------

2、二进制日志(binlog)

  (0) 查看二进制日志开启状态

      select @@sql_log_bin;

      开启关闭日志(关闭当前会话,全局修改配置文件)

      set  sql_log_bin=1/0;

  (1)主从要依赖二进制日志

  (2)数据恢复时需要依赖二进制日志

  (3)配置:  默认没有开启

    server_id=6

    log_bin=/data/binlog/mysql-bin  日志路径,创建/data/binlog 并给权限重启生效

      给权限  chown -R mysql.mysql  /data。 mysql-bin是文件名前缀

      例如 mysql-bin.00001,mysql-bin.000002。mysql会自动生成

    binlog_format=row   5.7默认配置,可以省略

    sync_binlog=1   每次事务提交立即将binlog刷写到磁盘,双1标准其中一个1,另一个是innodb_flush_method

  (4)记录的是数据库所有变更类的操作日志(DDL,DCL,DML)

      (1)DDL/DCL:  记录的是原模原样的SQL语句

      (2)DML:记录已提交的事务(statement、row、mixed)

           通过binlog_format=row 控制,对DDL.DCL没有影响

      (3)statement:SBR,语句模式记录日志,做什么命令,记录什么命令

          可读性强,对于范围操作日志量小,但是可能会出现记录不准确的情况

      (4)row: RBR,行模式,数据行的变化(redo 做的是数据页的变化)

          可读性差,对于范围操作日志量大,但是数据不会出现记录错误

      (5)mixed: MBR,混合模式,由Mysql决定用哪种模式

3、二进制文件的管理

  (1)查看二进制文件地址

    select @@log_bin_basename;

    show variables like '%log_bin%';

  (2)查看二进制模式

    select @@binlog_format;

  (3)查看二进制日志文件

    show binary logs;

  (4)滚动日志

    flush logs;

    reset master;清除所有日志,编号从1开始,开启了主从慎用,会崩

  (5) 查看正在使用的日志文件

    show master status;  

  (6)查看二进制事件

    show binlog events in 'mysql-bin.000004';

    mysqlbinlog --base64-output=decode-rows -vvv mysql-bin.000004  详情mysqlbinlog --help

  (7)截取事件

    mysqlbinlog --skip-gtids --start-position=219 --stop-position=578 mysql-bin.00004   通过开始和结束编号截取日志

    mysqlbinlog --skip-gtids -d test mysql-bin.00004    截取test库下的所有日志

    mysqlbinlog --skip-gtids --include-gtids='c1678cc2-270a-11eb-bd2e-000c29e32742:1-3' /data/binlog/mysql-bin.000007     >/tmp/gtids.sql  截图gtid编号的日志

 

  (8)清除日志

      手动清除

        purge binary logs to 'mysql-bin.000010'   清除mysql-bin.000010之前的日志(不包括本条)

        purge binary logs before '2020-11-16 22:05:00'  清除这个时间之前的日志

      自动清除

        expire_logs_days=15   保留15天的日志

   

 

 

 

 

 

  

 

 

 

------------恢复内容结束------------