mysql选择查询“设备上没有剩余空间”

时间:2018-05-02 18:02:55

标签: mysql ubuntu

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

mysql -u root -p  myDB < query.sql  

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

  

第1行的错误3(HY000):写入文件时出错   '/ mnt / disk / tmp / MY0Wy7vA'(错误代码: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 / disk

1 个答案:

答案 0 :(得分:0)

看一下错误的部分,表明它实际上是写入/ tmp(见下文)

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

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

要调查mount,请尝试

$ cat /proc/mounts

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

df - aTh

df -h /tmp

要查看隐藏的内容,请尝试

du -sc *。[^。] * | sort -n

除此之外,您可以尝试让MySQL使用不同的临时目录,或者不要将tmpfs用于/ tmp

如果未在 my.cnf 中设置TMPDIR,MySQL将使用系统默认值,通常为/ tmp

您可以更改MySQL tmp目录,如下所示:

Changing the tmp folder of mysql

致谢:: https://github.com/LogBlock/LogBlock/issues/540