美文网首页
MySQL的二进制日志

MySQL的二进制日志

作者: 愤愤的有痣青年 | 来源:发表于2020-05-26 17:20 被阅读0次

    ** mysql的二进制日志文件mysql-bin.log是记录了数据库至开启之日时的所有对表进行修改的sql语句,其默认是关闭的,如果要打开,需要修改配置文件并重启mysql. **

    ** 开启日志 **

      1. 先查询当前是否已经开启了日志
        登录mysql后,执行show variables like 'log_bin';
        若为如下显示则表示未打开日志
    Variable_name Value
    log_bin OFF
      1. 修改配置文件
        msyql的配置文件一般为/etc/mysql/mysql.conf.d/mysqld.cnf,打开该文件后,找到如下文件并取消注释
    server-id       = 1 # 服务器ID,此ID一般用于主备同步使用
    log_bin         = mysql-bin.log # 日志文件路径,有些配置文件默认是`/var/log/mysql/mysql-bin.log`,我测试时发现这样会报错,好像是权限的文件,所以我改成了这样
    expire_logs_days    = 10 # 日志文件的过期时间
    max_binlog_size   = 100M # 日志文件最大
    #binlog_do_db       = include_database_name # 需要备份的数据库,若要备份所有的数据库,保持注释即可.多个数据库需要写多个binlog_do_db语句
    #binlog_ignore_db   = include_database_name # 需要排除的数据库
    
      1. 重启数据库
        service mysql restart
      1. 校验是否修改成功,执行show variables like 'log_bin';出现如下提示则为开启
        | Variable_name | Value|
        | :------: | :------: |
        |log_bin|ON|

    ** 从日志中恢复数据 **

    恢复数据是从某个节点开始恢复,所以一般使用每天定时备份的方式恢复数据文件.

    • 查看日志文件路径show variables like '%log_bin%';
      image.png

    其中log_bin_basename字段对应的是日志文件的路径,然后执行show master status;可以查看当前的日志文件名

    • 将数据导出到sql
      mysqlbinlog /var/lib/mysql/DB-Server-bin.000013 > test.sql;

    • 按照时间节点恢复
      mysqlbinlog --stop-date="你想要恢复的时间" 日志文件的目录\binary-log.000001 | mysql -u root –p

    相关文章

      网友评论

          本文标题:MySQL的二进制日志

          本文链接:https://www.haomeiwen.com/subject/nothohtx.html