dong

SQLSTATE[HY000]: General error: 1 Can't create/write to file '/tmp/#sql_361_0.MYI' (Errcode: 28)
之前服务器出现过标题这种画风的报错问题,看报错我以为是 MySQL 出了问题,各种倒腾一番之后,实在找不到问题到底...
扫描右侧二维码阅读全文
22
2019/04

SQLSTATE[HY000]: General error: 1 Can't create/write to file '/tmp/#sql_361_0.MYI' (Errcode: 28)

之前服务器出现过标题这种画风的报错问题,看报错我以为是 MySQL 出了问题,各种倒腾一番之后,实在找不到问题到底出在哪里,因为有购买磁盘快照,所以我就把磁盘进行了回滚,然后系统恢复了正常。

到了第二天,这种问题又出现了,而且还出现了一个奇怪的问题。我们平常在操作 Linux 终端输入各种命令的时候,经常会使用 Tab 键来补全命令,以防止我们误操作。但是这次我命令打到一半,敲了 Tab 键之后,不是把命令补全,而是报了这样一个错:

No space left on device …

意思是 “设备上没有剩余空间”,可能是空间满了造成数据无法写入才出现后面的这些问题的,于是我用 df -h 查看了一下磁盘空间使用情况,发现空间并没有满,Used 连20% 都不到。在磁盘空间足够,但是无法写入数据的情况,我能想到的只有 inode 用完这种情况了。

使用 df -i 查看 inode 的使用情况,屏幕上输出 Used 100% 。。。好了,知道问题出在哪里了,看看阿里云的文档怎么介绍的。

问题原因

导致该问题的可能原因包括:

  • 磁盘分区空间使用率达到百分之百。
  • 磁盘分区inode使用率达到百分之百。
  • 僵尸文件:已删除文件因句柄被占用未释放导致相应空间未释放。
  • 挂载点覆盖:在原有文件系统的相应目录下已经存在大量文件。挂载了新磁盘后,导致使用 df 命令能统计到相关空间使用,而使用 su 命令统计不到。

处理办法

不同的原因需要通过不同的方法解决:

Last modification:April 22nd, 2019 at 03:11 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment