一、报错描述
执行sql的时候发现:Error writing file '/tmp/XXXX' (Errcode: 28 - No space left on device)
二、错误原因
这种情况就是mysql在关联大表的时候,需要的存储空间大于当前服务器的剩余磁盘空间
三、解决方案
要么清理一下,要么换个空间大点的存储位置。
- 如果没有修改过mysql默认的缓存路径的话,默认是在
/tmp/
下的,如果占用较小,就看看这个磁盘其他位置,df -h
来查看。 - 更换存储位置,如果有挂载其他磁盘,可以迁过去
# 1、在挂载磁盘上创建一个文件夹mkdir /bdata/mysql_tmp# 2、给权限chown mysql.mysql /bdata/mysql_tmp -Rchmod 777 -R /bdata/mysql_tmp -R# 3、打开mysql的配置文件vim /etc/my.cnf # 4、在文件里面修改缓存路径[mysqld]tmpdir = /bdata/mysql_tmp# 5、重启mysqlservice mysqld restart···
来源地址:https://blog.csdn.net/qq_38486203/article/details/125442096