今天下午改了一下自己正在写的LazyCluster聚类脚本,从rcpt数据库里导出mx记录,在select语句后面加了一个order
by条件,结果脚本跑了一阵子就报错了:
算了,去掉那个order by条件了,对于这么庞大的表格一sort开销也太大了。。。
Traceback (most recent call last):
File "./contCluster.py", line 621, in <module>
main()
File "./contCluster.py", line 600, in main
mailscnt=toCluster_rcptdb()
File "./contCluster.py", line 500, in toCluster_rcptdb
cursor.execute(sql)
File "build/bdist.linux-i686/egg/MySQLdb/cursors.py", line 166, in execute
File "build/bdist.linux-i686/egg/MySQLdb/connections.py", line 35, in defaulterrorhandler
_mysql_exceptions.InternalError: (3, "Error writing file '/tmp/MYAkvdjr' (Errcode: 28)")
一查:
$ perror 28
OS error code 28: No space left on device
实在不懂,于是Google了一下发现原来是order by搞的鬼:当使用order by来排序时,Mysql需要一些临时空间来存储东东,此时若系统空间不足,就会出现往临时文件写内容时报错的现象,于是报出了Error writing file '/tmp/**' (Errcode: 28)之类的错误提示。
![[备忘] Mysql操作出现Error writing file /tmp/MYAkvdjr错误 - panda - pandalove@126.com的博客](https://i-blog.csdnimg.cn/blog_migrate/a72bc424a46a6b88202ebc1245b1515f.gif)