mysql出现Error writing file \'xxx\'( Errcode:28)的原因有很多种,下面我来总结一些常用的关于引起Errcode:28错误原因与解决方法。
问题一,是log日志太大也会导致mysql提示Error writing file 'xxx'( Errcode:28)错误了,解决办法很简单。
1、清理磁盘,释放空间;
2、SQL语句查询的原表数据过大,优化SQL查询语句;
3、权限问题,造成读写错误,查看文件夹读写权限;
问题二,
perror 28
Error code 28: No space left on device
SQL语句执行错误:SELECT title,gid FROM blog_blog WHERE date < 1246200383 and hide = 'n' and type='blog' ORDER BY date DESC LIMIT 1
Error writing file 'C:WINDOWSTEMPMY9B6F.tmp' (Errcode: 28)
解决方法:
1.释放C:WINDOWSTEMP空间
2.因为原表太大,所以查询时生成的临时表过大,因此出错。
解决办法。重启了mysql,然后加上where分三段查询,避免全表扫描。
问题三,
Error writing file '/tmp/MYiS0UPV' (Errcode: 28) ,可能是在mysql的临时目录中没有更多的空间。
可以用df -lh来查看磁盘的使用情况。
试着改一下my.ini的tmp_dir的路径,重启mysql,问题应该可以解决。