【问题标题】:mysql select query "No Space Left On Device"mysql 选择查询“设备上没有剩余空间”
【发布时间】:2018-10-12 22:22:42
【问题描述】:

我的系统使用 Ubuntu 和 mysql 数据库:
我有一个复杂的 mysql 选择查询要运行。

mysql -u root -p  myDB < query.sql  

但是当我尝试运行它时,它总是给我:

ERROR 3 (HY000) at line 1: 写入文件时出错 '/mnt/disk/tmp/MY0Wy7vA' (Errcode: 28 - 设备上没有剩余空间)

我有 11 GB 的可用磁盘空间,当查询运行时,我使用

跟踪它
df -h

df -hi

跟踪 inode

在查询运行时,我没有看到磁盘空间有任何减少。 tmp 文件夹所在的磁盘上始终有 11 GB 可用空间。

这是df -h的输出:

ubuntu@ip-10-0-0-177:~$ df -h  
Filesystem      Size  Used Avail Use% Mounted on  
udev            3.9G     0  3.9G   0% /dev  
tmpfs           799M   57M  742M   8% /run  
/dev/xvda1       30G   24G  5.4G  82% /  
tmpfs           3.9G     0  3.9G   0% /dev/shm  
tmpfs           5.0M     0  5.0M   0% /run/lock  
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup  
/dev/xvdf1       50G   39G   11G  80% /mnt/disk  
tmpfs           799M     0  799M   0% /run/user/1000  

这是df -aTh的输出:

使用的文件系统类型大小可用使用百分比安装在
/dev/xvdf1 ext4 50G 39G 11G 80% /mnt/磁盘

【问题讨论】:

  • 你确定分区有空间吗?这是您的/tmp 分区已满吗? df -h 说什么?
  • 临时存储永久挂载在/mnt/disk?真的吗?
  • @tadman 不完整我更新了答案以查看 df -h 的结果
  • 您需要确认/mnt/disk/tmp/ 是在哪个文件系统上。试试df -Ph /mnt/disk/tmp/。请注意,查询可以创建一个 非常 大的临时表,然后一旦查询完成或被终止,临时表就会被删除,因此您运行 df 它看起来像您有足够的空间。
  • 值得注意的是,它可能会在操作过程中耗尽空间,然后删除临时文件,因此除非您在运行时检查df,否则您将无法观察到问题。如果您需要生成 >742MB 的文件作为操作的一部分,这将失败。如果您已安装(或可以获得)watch,请尝试 watch df -h 以在它运行时对其进行监控。

标签: mysql ubuntu


【解决方案1】:

查看错误中表明它实际上正在写入 /tmp 的部分(见下文)

: Error writing file '/mnt/disk/tmp/MY0Wy7vA

在某些 Linux 发行版中,/tmp 被挂载为 tmpfs(ramdisk),因此即使您的磁盘有足够的空间,如果您尝试在其中写入太多空间,也会出现“无空间”错误。

要调查该坐骑,请尝试

$ cat /proc/mounts

或 $ cat /proc/self/mounts 或者更好

df - aTh

df -h /tmp

要查看隐藏的,请尝试

du -sc * .[^.]* |排序-n

除其他外,您可以尝试让 MySQL 使用不同的临时目录,或者不使用 tmpfs 来处理 /tmp

如果 my.cnf 中没有设置 TMPDIR,MySQL 使用系统默认值,通常是 /tmp

您可以按照以下建议更改 MySQL tmp 目录:

Changing the tmp folder of mysql

学分 :: https://github.com/LogBlock/LogBlock/issues/540

【讨论】:

  • 分区不是 tmpfs 我将 df -h 的输出添加到我的答案中
  • 更新答案,发布 df - aTh 的输出
  • 添加了 df -aTh 的输出
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-29
  • 2012-01-14
  • 2012-05-15
  • 2018-11-22
  • 2015-07-21
  • 2020-12-16
  • 2014-11-20
相关资源
最近更新 更多