错误:
SQLSTATE[HY000]: General error: 1021 Disk full (/tmp/#sql_20fe_1.MAI); waiting for someone to free some space...
谢谢
答案 0 :(得分:1)
错误很明显。进入/ tmp内部,看看占用磁盘空间的是什么。 您可以安装ncdu以查看该文件夹中磁盘使用情况的摘要。 然后删除你不需要重启MySQL的内容
此外,1 G对于生产环境中的临时文件夹是不够的。你应该考虑扩展它。
答案 1 :(得分:1)
错误来自MySQL server。 MySQL的分区没有足够的磁盘空间。
释放分区上的磁盘空间,检查分区上的项目并删除不必要的文件。您可以通过df -h
和ls -lh
检查尺寸,并删除您不需要的文件或增加磁盘大小。
答案 2 :(得分:1)
MySQL有一个名为VARIABLE
的{{1}},用于控制tmp表的放置位置。它可能设置为tmpdir
。但它可以更改为其他目录。挂在/tmp
下面的某处;这将给它空间。更多信息:https://dev.mysql.com/doc/refman/5.7/en/temporary-files.html
另外,检查"交叉连接"。如果您有/
个SELECT
表,但没有关于表如何关联的任何限定条件,那么您可以进行"交叉加入"。交叉连接中的两百万行表将创建一个具有万亿行的临时表。这将是一团糟。