MySQL报错Errcode: 28
在对大数据进行查询操作(比如,排序操作)时候,有时候会有类似:Error writing file ‘x:/tmp/xxxx.tmp’ (Errcode: 28)的错误提示。
今天在对多达120W的数据表进行全表排序的时候报的类似这样的错误。X的磁盘分区的权限没有问题,读写都很正常,唯一觉得有点问题的是空间比较小。机器装的是4G的内存,但使用的是WinXP32位版本,因此浪费掉了1G,为了节省磁盘写入量,我将多出的那1G内存利用工具当做一个磁盘来使用,将系统临时文件目录以及浏览器缓存文件存放于这里。正常使用一般是没什么问题的。但做这个大表扫描的时候导致空间不足。
现在的解决办法要么就是清理一下磁盘,但由于表太大了,恐怕着1G的容量全部使用也不会够的。
要么就是将系统的临时目录更改到一个新的大容量分区内,不过,这样做有点背离我要利用空闲的那1G的内存了,再说,还要重启机器。
看了看mysql的环境变量,发现有一个变量的目录就是X:,于是,直接编辑MySQL的配置文件my.ini,加入一行:
tmpdir=”F:/MySQL_Data/Tmp/”
这样的话就是告诉MySQL,临时文件存放的路径。MySQL的tmpdir变量如果没有设置的话会自动以当前操作系统的临时目录作为自己的暂存目录。
重启mysql后问题解决。
标签:MySQL, WinXP