先执行show variables like 'log_bin';确认状态,on表示已启用;再运行show binary logs;验证,若报错“not using binary logging”则确未开启;配置关闭需同步注释log-bin、binlog_format、server-id等整组参数,并重启前用reset master;或手动清理binlog文件。

确认 binlog 当前是否启用
别急着改配置,先连进 MySQL 看一眼真实状态:SHOW VARIABLES LIKE 'log_bin';。如果返回值是 ON,说明确实开着;返回 OFF 就不用往下看了。顺手跑一句 SHOW BINARY LOGS;,如果有报错 ERROR 1381 (HY000): You are not using binary logging,那它早就关了。
/etc/my.cnf 中注释 log-bin 相关行必须完整
只注释 log-bin=mysql-bin 不够,MySQL 启动时会因残留配置报错或静默启用 binlog。以下几行必须一并注释:
#log-bin=mysql-bin#binlog_format=mixed-
#server-id = 1(server-id 非零 + binlog 开启 = 主库身份,不注释可能触发隐式启用) -
#expire_logs_days=10(避免重启后因该参数存在而意外激活日志策略)
MySQL 8.0+ 用户注意:log-bin=Off 已被弃用,disable-log-bin 是无效写法,唯一可靠方式仍是注释整组相关项。
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
重启前先清理残留 binlog 文件
直接重启服务后,旧的 mysql-bin.0000* 文件不会自动消失,仍占磁盘空间,且下次启动可能因权限或路径问题卡住。安全做法是:
- 先执行
RESET MASTER;(在 MySQL 命令行中),清空当前所有 binlog 并重置索引 - 若提示
ERROR 1186 (HY000): Binlog closed, cannot RESET MASTER,说明 binlog 已关闭但文件未删,此时手动删掉/usr/local/mysql/var/(或你的datadir下)所有mysql-bin.*和mysql-bin.index - 再重启:
/etc/init.d/mysql restart或systemctl restart mysqld
LNMP 一键包用户特别注意路径和权限
LNMP 默认把配置文件放在 /etc/my.cnf,但部分版本会额外加载 /usr/local/mysql/etc/my.cnf 或 /etc/my.cnf.d/ 下的文件。用 mysqld --help --verbose | grep "Default options" 确认实际读取路径。修改后检查权限:ls -l /etc/my.cnf 应为 root:root 且不带可执行位,否则重启失败。
改完不生效?大概率是配置被其他文件覆盖,或者 skip-log-bin 这类拼写错误写进了配置——MySQL 会忽略非法指令,但不会报错,只会默默继续写日志。










