运行查询时出现以下错误:
[ERROR] [MY-013132] [Server] The table '/tmp/#sql1127b_9_0' is full!
我进入 /tmp
目录,但是找不到这个表,我猜测当查询运行结束后它可能被删除了。
于是我在查询运行时进入该目录(该查询大约需要几分钟 - 针对 4000 万条记录),但我仍然看不到这个表。我刷新了目录,但还是看不到它。那我该怎么办呢?我想看到这个表,并确定其位置,以便找出为什么在有大量可用磁盘空间的情况下它会填满。
我使用的是 MySQL 8.0.23 - 我之前在同一台机器上使用 MySQL 5.7.33 和相同的数据库和查询,从未遇到过问题。
我的磁盘空间如下:
Filesystem Size Used Avail Use% Mounted on
tmpfs 3.2G 3.7M 3.2G 1% /run
/dev/sdc3 215G 38G 167G 19% /
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
/dev/sdb6 107G 81G 21G 80% /media/Kingston_SSD_120GB
/dev/sda 459G 335G 101G 77% /media/Hitachi
/dev/sdc2 33M 7.8M 25M 24% /boot/efi
tmpfs 3.2G 120K 3.2G 1% /run/user/1001
我没有为/tmp
设置任何磁盘空间 - 可以看到,/
上有167GB的可用空间。