Mysql 数据库开启 binlog
作者:mmseoamin日期:2023-12-21

1 简介

在MySQL中,binlog指的是binary log,二进制日志文件。这个文件记录了MySQL所有的DML操作。通过binlog日志,我们可以做数据恢复,做主从复制等等。对于运维或架构人员来说,开启binlog日志功能非常重要。

2 开启 binlog

(如何开启MySQL的binlog日志呢?下面将介绍两种方法)

2.1 方法一:在my.cnf主配置文件中添加参数

在 my.cnf 主配置文件中,找到 [mysqld] 模块,然后添加以下三行参数

log_bin=ON
log_bin_basename=/var/lib/mysql/mysql-bin
log_bin_index=/var/lib/mysql/mysql-bin.index

参数解释:

  • log_bin:开启binlog日志文件,默认值为OFF。
  • log_bin_basename:binlog日志的基本文件名。MySQL会在该文件名后追加标识来表示每一个binlog文件。
  • log_bin_index:binlog文件的索引文件,管理所有的binlog文件。

    2.2 方法二:使用log-bin参数

    如果你使用的是 MySQL 5.7 及以上版本,使用 log-bin 参数更加方便。在my.cnf配置文件中,找到 [mysqld] 模块,添加以下一行参数即可。

    log-bin=/var/lib/mysql/mysql-bin
    

    参数解释:

    • 这个参数的作用和上面三个参数的作用是相同的。MySQL会根据这个配置自动开启binlog日志,自动设置 log_bin_index 文件为你指定的文件名后跟.index。参数log-bin指定了binlog文件的基本文件名。
    • 需要注意的是,如果你使用MySQL 5.7及以上版本,必须添加一个额外的参数server-id=123454(随机指定一个不能重名的字符串),否则重启MySQL服务会报错。

      然后,重启 mysql 服务即可。

      2.3 重启 mysql 服务

      • 在 CentOS 6上,使用以下命令重启MySQL服务:
        	service mysqld restart
        
        • 在 CentOS 7上,使用以下命令重启MySQL服务:
          	systemctl restart mysqld
          

          3 验证是否开启 binlog

          开启binlog日志之后,我们可以登录mysql终端或者Navicat客户端,执行以下命令,查看是否成功开启binlog日志:

          show variables like '%log_bin%';
          

          Mysql 数据库开启 binlog,在这里插入图片描述,第1张

          同时,在/var/lib/mysql目录下,你可以看到多个mysql-bin的文件,还有一个mysql-bin.index的文件,这表明binlog日志已经成功启用。