Ubuntu服务器发现内存满了导致程序和mysql数据库执行异常的解决办法

一、问题描述:

今早来到公司,突然发现程序无法正常执行,出现图片下载失败,数据库没有保存数据等情况,一查发现是系统盘满了,导致程序运行失败!

在这里插入图片描述
在这里插入图片描述

select * from `dotmessjianyu`.`alarm_message` order by 3 asc limit 0, 1000

Error writing file '/tmp/MYbqU7R6' (Errcode: 28 - No space left on device)

数据库执行排序都不行。

二、问题分析

MySQL 疑难杂症(一): Error writing file ‘/tmp/…’ (Errcode: 28)
出现这样的问题的原因是: 服务器的空间不足,导致 MySQL 写入临时文件失败。

比如当我们执行以下SQL:

SELECT COUNT(*) FROM 
 (
     SELECT * FROM enterprise LIMIT 1,1
 ) result

在这个时候 SELECT * FROM enterprise LIMIT 1,1 语句查询的结果就会生成一个临时表,写入 /tmp/ 缓存目录下,如果这个时候服务器的空间不足,就会导致 MySQL 写入文件失败,造成 SQL 异常。

详述查看 MySQL 数据文件存储位置的方法
我们可能会有一个疑惑,那就是:当我们在本地(自己的电脑)安装完 MySQL 之后,也创建了很多的数据库啊、表啊,也存储了很多的数据啊,但是这些内容都存储到哪里了呢?特别是,当我们需要直接操作这些数据文件的时候,翻遍了整个电脑,却找不到 MySQL 的数据文件到底在哪里,这就有些坑爹啦!

在这里,教给大家一个非常简单的能够立即定位到 MySQL 数据文件的存储位置方法,即在 MySQL 客户端键入如下命令:


show global variables like "%datadir%";

如上图所示,MySQL 的数据文件就存放在Data目录。至于接下来想查看具体的数据库还是表,这就看大家的心情啦!

不过大家可能还会有一个疑问,那就是我们都查到 MySQL 的数据文件在C盘的ProgramData目录下了,但是翻遍了整个C盘却仍然没有找到ProgramData文件夹,这是为什么?答案就是:在默认情况下,ProgramData文件夹是隐藏的。

查看磁盘的使用情况:

df -lh

查看各文件和文件夹的体积

du -sh *

三:问题解决:

删除了一些日志文件,腾出了7.2G的空间,系统终于能正常运行了,找对一些不必要的文件执行

rm -rf xxx

最后的最后发现还有造成系统盘满的隐患,那就是存储软件minio。

下篇将记录minio迁移过程!
本次分享到此结束!

end~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值