我收到 mysql 磁盘空间错误
Can't create/write to file '/tmp/#sql_777_0.MYI' (Errcode: 28)
主要是因为我的 ngnix 服务器正在将文件写入未清理的 tmp 文件夹。
我按照 nginx 手册上的说明将此命令添加到 crontab 中,但似乎没有起到作用,(我也不明白它的作用)
0 */1 * * * /usr/sbin/tmpwatch -am 1 /tmp/nginx_client
然后我必须手动执行这个命令
cd /tmp/nginx_client
find -name * | xargs rm
我需要知道什么
- 我应该做些什么来自动完成这个清理工作?
- 有没有办法可以增加 /tmp/ -> /var/tmp/ 的大小,而无需重新格式化或做任何危险的事情?
- 我可以更改 MYSQL -> TMP 文件的位置吗?
答案1
最好更改 mysql tmp 目录的位置。您可以在 my.cnf 文件中设置以下内容
[mysqld]
tmpdir=/some/path/to/tmpdir
确保 mysql 用户也对此目录具有读/写权限。如果要创建更大的分区,您可以随时 dd 文件。mkfs 该文件并将其挂载为分区。也就是说,如果您想设置上限,以便 mysql tmp 文件不会占用所有可用空间。
您的更大问题可能是您的查询,但是如果它们在您的 tmp 位置使用了那么多空间,那么您进行的一些大规模连接可能会影响性能。