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