MySQL 的 binlog(binary log,二进制日记) 是一个记录数据库更改操作的日记文件,用于跟踪和存储全部对数据库执行的更改。它不会记录 SELECT 查询等读操作,只会记录会修改数据的操作,如 INSERT、UPDATE、DELETE、CREATE、ALTER 等。
有时候我们服务器磁盘空间设置比力小,然而服务器上运行的docker-MySQL开启了binlog,会导致占用大量磁盘,导致磁盘空间不敷,因此可接纳以下操作步骤关闭binlog
- 在[mysqld]部分下,查找log-bin参数,如果存在,则将其注释掉或者删除
- # log-bin=mysql-bin
- 如果没有这个参数,手动添加以下配置来禁用二进制日志
- [mysqld]
- skip-log-bin
- 确保 binlog 相关的其他设置也被禁用。例如:
- # binlog_format=row
- # expire_logs_days=7
- # max_binlog_size=100M
复制代码- docker里面如果无法使用vi,在 [mysqld] 行后面插入 skip-log-bin。
- 方法一:使用sed命令
- sed -i '/\[mysqld\]/a skip-log-bin' /path/to/your/my.cnf
- 方法二:使用awk命令
- awk '/\[mysqld\]/{print; print "skip-log-bin"; next}1' /path/to/your/my.cnf > /tmp/my.cnf && mv /tmp/my.cnf /path/to/your/my.cnf
复制代码
- 执行以下命令来停止二进制日记的写入,并删除全部已存在的 binlog 文件:
- 这将会删除全部的 binlog 文件,释放磁盘空间。
- 检查 binlog 是否已关闭: 可以使用以下命令确认 binlog 是否已关闭:
- SHOW VARIABLES LIKE 'log_bin';
复制代码 如果返回值为 OFF,说明 binlog 已关闭。
- systemctl restart mysqld
- 或者
- service mysql restart
- docker则执行以下命令
- docker restart <container>
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |