mysql大量占用硬盘空间_mysql占用大量磁盘空间问题原因及解决方法

前言

我们使用mysql或者是其他的数据的时候总是会遇到数据库占用大量磁盘空间,导致磁盘空间不足,从而导致其他问题(例如:数据库重启后无法启动;数据库无法写入数据等)。

要解决这一个问题,方法就是对数据库的某些不必要的文件进行删除。在mysql数据库中占用大量磁盘空间的一般是binlog日志,因为它里面记录着数据库中数据的变动,所以它会随着时间的积累不断的变大,其存在的意义在于便于以后根据日志对数据的基于时间或位置的恢复和报错处理。

下面介绍的就是解决mysql数据库占用大量磁盘空间的解决方法。

解决方法

【方法一】手动删除

【1】查看是否mysql的binlog日志是否过大

由于mysql的安装版本或安装方式,其binlog日志所在的位置或日志名称都不同,需根据自己的情况,查看日志大小。

(一般位置为/var/lib//mysql/或/usr/local/mysql/var/)

<1>查看

cd /mysql/data/

du -sh *

a59169511078912d358cfbecbb72b3a3.png

上图为本人实际binlog日志所在位置。由上图可知,的确是mysql的binlog日志过大,占用了磁盘空间。

【2】删除日志文件

有两种情况

情况1:该数据库未做主从

<1>删除日志

数据库中执行:

reset master;

如该数据库有主从也可使用此命令,但是易导致主从同步失败。

情况2:该数据库已做主从

<1>查看主库和每个从库正在使用的binlog是哪个文件

show master status;

0a705f75522cf3e027cbdebbee9d5d02.png

show slave status\G;

1434db0d9f942d4a2b6f3c3fae80431c.png

<2>删除指定的日志序号之前或日期之前的日志索引中的所有二进制日志

purge master logs to’mysql-bin.000003’;

purge master logs before’2018-08-29 12:00:00’;

4b6325976ec0add220aa2d9627239cad.png

注意:

不可删除正在使用的binlog

时间和文件名不可写错(要依据自己的真实情况)

【3】reset master与purge binary logs区别

reset master:删除所有的binglog日志文件,并将日志索引文件清空,重新开始新的日志文件。

purge binary logs:基于某时间点的删除日志

【方法二】系统定期删除binlog文件

<1>查看当前的日志保存天数

show variables like ‘expire_logs_days’;

8f93e957e003d614e4c34a2ca8e96183.png

<2>设置只保留3天的binlog

(临时,重启mysql这个参数会失败)

set global expire_logs_days = 3;

(永久,my.cnf中添加,重启后生效)、

expire_logs_days = 3

注意:

默认值为0,表示“没有启用自动删除”

过期时间设置的要适当

【方法三】禁用binlog

如使用主从,禁止此操作

<1>将my.cnf中的下列注释掉

#log-bin=mysql-bin

#binlog_format=mixed

<2>重启mysql

systemctl restart mysql (centos 7)

/etc/init.d/mysql restart (centos 6)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL占用磁盘空间的大小取决于数据库中存储的数据量以及表结构、索引等因素。以下是一些可能导致MySQL占用大量磁盘空间原因解决方法: 1. 数据库中存储的大量数据:如果数据库中存储了大量数据,那么MySQL占用磁盘空间也会相应增加。可以通过删除不必要的数据,或者对数据进行压缩等方式来减少占用磁盘空间。 2. 索引占用的空间:MySQL中的索引也会占用磁盘空间。如果表中有大量的索引,那么它们可能会占用相当大的磁盘空间。可以通过删除不必要的索引、优化索引等方式来减少索引占用磁盘空间。 3. 未正确清除日志:MySQL中的日志文件也会占用磁盘空间。如果未正确清除日志文件,它们可能会占用相当大的磁盘空间。可以通过定期清除日志文件、设置合适的日志文件大小等方式来控制日志文件占用磁盘空间。 4. 慢查询日志:如果开启了慢查询日志,那么它们也会占用磁盘空间。可以通过定期清除慢查询日志、设置合适的日志文件大小等方式来减少慢查询日志占用磁盘空间。 5. 数据库备份:如果定期备份数据库,那么备份文件也会占用磁盘空间。可以通过删除不必要的备份文件、压缩备份文件等方式来减少备份文件占用磁盘空间。 综上所述,可以通过删除不必要的数据和索引,定期清除日志和慢查询日志,删除不必要的备份文件等方式来减少MySQL占用磁盘空间

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值