关闭数据库binlog

打印 上一主题 下一主题

主题 903|帖子 903|积分 2709

MySQL 的 binlog(binary log,二进制日记) 是一个记录数据库更改操作的日记文件,用于跟踪和存储全部对数据库执行的更改。它不会记录 SELECT 查询等读操作,只会记录会修改数据的操作,如 INSERT、UPDATE、DELETE、CREATE、ALTER 等。
有时候我们服务器磁盘空间设置比力小,然而服务器上运行的docker-MySQL开启了binlog,会导致占用大量磁盘,导致磁盘空间不敷,因此可接纳以下操作步骤关闭binlog
  

  • 找到MySQL的设置文件
  • 修改设置文件
  1. 在[mysqld]部分下,查找log-bin参数,如果存在,则将其注释掉或者删除
  2. # log-bin=mysql-bin
  3. 如果没有这个参数,手动添加以下配置来禁用二进制日志
  4. [mysqld]
  5. skip-log-bin
  6. 确保 binlog 相关的其他设置也被禁用。例如:
  7. # binlog_format=row
  8. # expire_logs_days=7
  9. # max_binlog_size=100M
复制代码
  1. docker里面如果无法使用vi,在 [mysqld] 行后面插入 skip-log-bin。
  2. 方法一:使用sed命令
  3. sed -i '/\[mysqld\]/a skip-log-bin' /path/to/your/my.cnf
  4. 方法二:使用awk命令
  5. 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 文件:
  1. RESET MASTER;
复制代码


  • 这将会删除全部的 binlog 文件,释放磁盘空间。

  • 检查 binlog 是否已关闭: 可以使用以下命令确认 binlog 是否已关闭:
  1. SHOW VARIABLES LIKE 'log_bin';
复制代码
如果返回值为 OFF,说明 binlog 已关闭。

  • 重启MySQL服务
  1. systemctl restart mysqld
  2. 或者
  3. service mysql restart
  4. docker则执行以下命令
  5. docker restart <container>
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

麻花痒

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表