MySQL:Can‘t change size of file (OS errno 28 - No space left on device)
OS errno 28 - No space left on device
MySQL 执行一个大查询的时候,报错。
Can’t change size of file (OS errno 28 - No space left on device)
当MySQL服务器试图执行一些操作时,它会在磁盘上创建或写入文件。如果磁盘上的可用空间不足,将出现Writing file error (Errcode 28)错误。
检查MySQL所在的目录,看数据所在存储空间充足。
还有其他的可能性:如果有一个查询需要建立一个临时文件,但在执行查询之前发现磁盘上可用空间不足,那么就会出现这个错误。
因为查询使用:
with filtered_tmp_data as (
select ... ...
查询的数量比较大,造成创建临时文件空间不足。
Windows下的MySQL没有设置临时文件目录,Windows系统盘的空间不大,可能造成临时文件空间不足。
解决方法:
增加临时文件路径,增加日志历史文件过期限制
[mysqld]
tmpdir = D:\\App\\mysql-8.0.16\\temp
expire_logs_days = 7
关闭数据库,重新启动。
再执行查询,可以查询出结果,不再报错。