mysql: ERROR 1 (HY000): Can't create/write to file 'C:/WINDOWS/TEMP/#sql_** .MY

 

当我在mysql sq_chenyiyi1库里面运行
select pc.skuid,ct.description as type_dp,cb.description as brand_dp,ct.name as type,ct.id as type_id,cb.name as brand,cb.id as brand_id from brand_type as bt ,categories_brand as cb ,categories_type as ct,products as p,products_categories as pc where pc.skuid=p.skuid and bt.brand_id = cb.id and bt.type_id=ct.id and pc.type_id=ct.id group by ct.id,cb.id order by cb.id,bt.seq;
时就会出现ERROR 1 (HY000): Can't create/write to file 'C:/WINDOWS/TEMP/#sql_650_0.MYD' (Errcode: 17)
创建不了二进制日志

1, C:/WINDOWS/TEMP文件夹权限不够,至少也要给出USERS组的可读可写权限; (给出权限)
2, C:/WINDOWS/TEMP文件夹的磁盘满了,文件写不进去了;(清空TEMP文件夹)
3, 你的服务器装了MCAFEE杀毒软件,它的访问保护禁止了TEMP文件可写;(修改访问保护设置)
4, 还是MCAFEE杀毒软件的问题,解决步骤:按访问扫描属性-所有进程-检测项-扫描文件(在写入磁盘时)勾去掉,OK.

说明:
1, 有很多人说是1,2条的问题.难道大家这个都不知道吗?笑话!
2, 有很多人说删#sql_5ac_0.MYD' 这个文件就可以了,是啊.没错,当时是可以了.当你操作数据库后又会出现此问题,难道不是吗?所以删除#sql_5ac_0.MYD' 文件后根本没解决真正的问题;
3, 最终由本人一个晚上未睡觉,多次测试,找到了最终的原因就是第4条,MCAFEE杀毒软件的问题.

 

在my.ini中[mysqld]里面添加一行

tmpdir="d:/mysql/temp/"

指定创建创建临时文件的目录,大量查询时会用到
重新启动mysql服务使之生效.

打开McAfee VirusScan控制台->按访问扫描程序->属性->所有进程->检测项->排除项->添加D:/mysql/temp/
排除时间选择读取时写入时.


备注:由于mysql默认的临时目录是c:/windows/temp,网上流传的说法是
修改McAfee VirusScan控制台->按访问扫描程序->属性->所有进程->检测项->扫描文件去掉写入文件时,
我的方法相对要安全些.

至于权限,由于mysql服务默认是系统权限,一般都是系统完全控制的,如果必要,也可给个启动用户.

 

你可能感兴趣的:(DataBase)