MySQL二进制日志怎么开起来,实际操作一步步来讲解下
- 问答
- 2026-01-19 10:55:22
- 2
你需要知道二进制日志是个什么东西,简单打个比方,它就像MySQL的“流水账本”,数据库执行的每一个更改数据的操作,比如增加一条记录、删除一条记录、修改一条记录,甚至是改变表结构,都会被详细地记录在这个账本里,开启它主要有两个大用处:一是用来做主从复制,就是让一个数据库服务器(从库)自动同步另一个服务器(主库)的数据;二是用来做数据恢复,如果你不小心误删了数据,可以通过回放这个日志,把数据恢复到某个时间点。
我们进入正题,一步步把它开起来,整个过程大致分为三步:检查当前状态、修改配置文件、重启MySQL服务并验证。
第一步:检查MySQL当前是否已经开启了binlog
在动手修改之前,最好先看看你的MySQL是不是已经默默开启了binlog,只是你不知道,我们可以登录到MySQL数据库里用命令查看。
打开你的命令行终端(比如Linux的shell,或者Windows的cmd),连接到MySQL,命令一般是这样的:
mysql -u root -p
输入密码后,你就进入了MySQL的命令行界面,然后输入以下SQL命令:
SHOW VARIABLES LIKE 'log_bin';
执行后,你会看到一行结果,如果Value那一列是OFF,说明binlog功能是关闭的,如果Value是ON,那说明已经开启了,同时还会显示一个日志文件的基本名称,你还可以看到一个叫log_bin_basename的变量,它会告诉你binlog文件具体存放在服务器的哪个位置。

第二步:修改MySQL的配置文件
这是最关键的一步,我们需要告诉MySQL:“请开始记录流水账”,方法是修改MySQL的配置文件。
-
找到配置文件:
- 在Linux系统上,这个文件通常是
/etc/my.cnf或者/etc/mysql/my.cnf,也可能在/etc/mysql/mysql.conf.d/mysqld.cnf这个路径下,你需要根据你的安装方式来确定。 - 在Windows系统上,这个文件通常是
my.ini,它可能放在MySQL的安装目录下,或者放在C:\ProgramData\MySQL\MySQL Server X.X\这个隐藏目录里(X.X是你的MySQL版本号)。
你可以用任何文本编辑器打开这个文件,但需要管理员权限,比如在Linux上,你可以用
sudo vim /etc/my.cnf命令。 - 在Linux系统上,这个文件通常是
-
添加配置内容: 在配置文件中,找到
[mysqld]这个段落,所有关于MySQL服务端的配置都写在这里,如果找不到这个段落,就自己新起一行写上[mysqld]。在这个段落下面,添加以下几行配置:

[mysqld] # 开启二进制日志,并设置日志文件的前缀名。 # 这里设置的前缀是 mysql-bin,之后生成的日志文件就会是 mysql-bin.000001, mysql-bin.000002 这样的。 log-bin=mysql-bin # 设置服务器的ID号。 # 这个ID在同一个主从复制集群里必须是唯一的,通常主库设为1,即使不做主从,也最好设置一个。 server-id=1 # (可选但推荐)设置binlog的记录格式。 # 格式有STATEMENT、ROW、MIXED三种,推荐使用ROW,因为它能最安全、最准确地记录数据变化。 binlog_format=ROW # (可选)设置单个binlog文件的最大大小,超过这个大小就会自动生成新文件。 max_binlog_size=100M # (可选)设置binlog文件保留的天数,超过天数的旧文件会被自动删除,防止占满磁盘。 # 这里设置的是保留7天,你可以根据你的磁盘空间和需求调整。 expire_logs_days=7
上面这些配置项中,前两个(
log-bin和server-id)是必须的,其他的可以根据你的需要添加,注释(以开头的行)解释了每个参数的作用,你可以看明白再决定怎么设。 -
保存并关闭配置文件。
第三步:重启MySQL服务并再次验证
光改了配置还不行,必须重启MySQL服务,让新的配置生效。
-
重启MySQL服务:
- 在Linux系统上(使用systemctl):
sudo systemctl restart mysqld # 或者有些系统可能是 mysql # sudo systemctl restart mysql
- 在Windows系统上: 打开“服务”管理器(可以在开始菜单搜索“服务”找到),找到名为“MySQL”或者“MySQLXX”的服务,右键选择“重启”。
- 在Linux系统上(使用systemctl):
-
再次验证binlog是否开启: 服务重启成功后,再次登录MySQL命令行,执行第一步的那个命令:

SHOW VARIABLES LIKE 'log_bin';
这次,你应该能看到
Value变成了ON,恭喜你,这说明binlog已经成功开启了! -
查看binlog文件列表: 你还可以执行另一个命令,看看当前有哪些binlog文件:
SHOW BINARY LOGS;
这个命令会列出所有的binlog文件,以及它们的大小,正常情况下,你会看到至少一个文件,名字就是你刚才在配置文件里设置的
mysql-bin.000001。
做一些简单的测试
为了确保它真的在工作,你可以做个简单的测试,在MySQL命令行里,随便创建一个新数据库,或者在一个已有的数据库里创建一张新表,插入一条数据。
CREATE DATABASE test_binlog; USE test_binlog; CREATE TABLE test_table (id INT, name VARCHAR(20)); INSERT INTO test_table VALUES (1, 'hello binlog');
执行完这些操作后,再次执行 SHOW BINARY LOGS;,你可能会发现binlog文件的大小增加了,这就证明你的操作已经被成功地记录到“流水账”里了。
整个过程就是:先看看现状,然后改配置文件(主要是加log-bin和server-id这两行),最后重启服务再检查,只要一步步跟着做,开启MySQL的二进制日志并不复杂,修改配置文件前如果不太确定,最好先备份一下原文件,以防万一。
本文由称怜于2026-01-19发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://www.haoid.cn/wenda/83623.html
