618 前,在某东项目上遇到了一个磁盘满导致程序崩溃的问题。通过检查磁盘容量,发现三套系统跑起来的数据库容量一般(不至于导致磁盘满),继续分析发现MySQL 数据Data目录下的binlog 保存了默认30天,其中在大促期间,所占空间接近200G内存, 所以在网上寻找解决办法,并记录下来,方便以后作为参考。
binlog简单介绍
MySQL的binlog日志作用是用来记录MySQL内部增删改查等对MySQL数据库有更新的内容的记录(对数据库的改动),对数据库的查询select或show等不会被binlog日志记录;主要用于数据库的主从复制以及增量恢复。
解决方案
在MySQL 中可以通过启用禁用log-bin功能或者更改存储binlog的时间来减少存储。我在项目上是将默认的30天更改为了7天以达到目的。
步骤说明
1. DOS命令登录到MySQL
在登录工程中遇到了一个1045 无法登录error,如下图:
解决方法:需要在my.ini [mysqld] 下添加 skip-grant-tables, 其中my.ini路径如下图所示:
my.ini 中修改位置如