Can’t create/write to file ‘c:\temp/#sql-XXX.MYI′ -- 解决办法
来源:互联网 发布:ebsco数据库怎么下载 编辑:程序博客网 时间:2024/06/13 16:49
Can’t create/write to file ‘c:\temp/#sql-XXX.MYI′ -- 解决办法
这两天在使用MySQL做点东西,可是从前天开始,系统启动时经常出现类似Can’t create/write to file ‘c:\temp/#sql-XXX.MYI′ (Errcode: 13)"的错误,我以为可能是我的系统的问题,于是重启应用和MySQL,该问题还是陆陆续续会出现,但又不是始终出现。我注意到该问题一般都在查询数据量比较大的时候才出现,我想应该是在做大数据量的数据库操作,MySQL想往temp目录写临时文件时,则于某种原因无法写入导致了该问题,于我,我尝试着着按以下步骤进行分析处理。
一、这可能是MySQL以前生成的临时文件还存在,但具有只读属性导致无法写入。我仔细查看temp目录,却没有找到扩展名为“MYI”的文件,于是把临时目录下的所有文件都删除。重新启动MySQL和应用系统,但问题还是会出现;
二、我怀疑是不是temp目录具有只读属性或对MySQL用户禁止写入,但我的在WindowsXP上,而且临时目录里会有别的系统产生的临时文件,说明该目录是可以读写的,而且我启动MySQL用的是超级用户,所以不存在目录无写权限的问题;
三、会不会是杀毒软件的实时文件保护导致无法写临时文件呢?因为我的杀软的病毒库是天天升级的,前几天也系统没出现过该问题,而这几天可以,是不是我升级了病毒库后,杀软阻止了MySQL产生临时文件呢?我在杀软中把temp目录设为不检测,再重启MySQL和应用,再看着temp目录,里面会出现#sql-XXX.MYI或#sql-XXX.MYD等临时文件,应用系统启动正常。看来问题就出在杀软禁止MySQL产生“MYI”或“MYD”临时文件导致了该问题。
至此,我以为问题就这样解决了,可是在接下来的一次启动中,我看到临时文件产生了,我就在临时文件#sql-XXX.MYI上点右键,想看看文件属性,这一点可好,应用系统又出现了原来的错误,咋回事?我再次停掉应用然后重启,重启过程中不对临时文件作任何操作,应用启动都正常。这是为什么呢?
我分析原因可能是这样的:MySQL产生的临时文件存在时间很短,MySQL在产生临时文件后需要马上使用马上删除,这时候如果有另外一个软件对这些临时文件进行访问或操作的话,MySQL就无法及时获得文件访问权限,就抛出错误。杀软由于启用了文件保护功能,当MySQL产生临时文件后,即锁定文件进行病毒检测,导致了MySQL自己不能马上操作这些文件从而抛出错误,同样的,当我试图查看文件属性时,操作系统对文件也进行了短时间的锁定,而这一锁定导致MySQL自己无法操作,所以也抛出这个错误来。
现在这个问题貌似已经解决,但是否真的已解决还有待接下来几天观察,我的分析是不是正确也有待历史来作出裁定,呵呵。
另外,我也在网上搜了一把,发现很多人也遇到这个问题,但多数人都认为是目录没有写权限而导致,也有部分人知道是杀软导致的这个问题,却没有深入的分析其原因,我就当给有相同遭遇的弟兄抛个砖吧。
文章引子:http://www.xker.com/page/e2011/0505/101159.html
我自己在本机实验了一下,我的杀软默认是检测所有文件,我更改了一下默认的配置,让其只对安装程序查杀,这样就没有出现刚刚的问题。
网上说权限是这样的:
can't create/write to file 'c:\....\#sql64c_0.MYI'
1.创建该目录
2.给予相应的权限
3.在my.ini文件总添加 tmpdir=x:/xxx
这个方法我试过了,反正我自己的不好用,不知道你们的好用不
- Can’t create/write to file ‘c:\temp/#sql-XXX.MYI′ -- 解决办法
- 关于大量数据的查询导致sql报错类似Can’t create/write to file ‘c:\temp/#sql-XXX.MYI′ (Errcode: 13)"的错误
- Mysql 出错,Can't create/write to file C:\WINDOWS\TEMP\#sql_1588_0.MYI(Errcode:13)的解决办法
- MySQL出现Can’t create/write to file ‘C:\WINDOWS\TEMP\#sql_718_0.MYD(Errcode: 17)解决办法
- MySQL Can't create/write to file 'c:/windows/temp/#sql_2d0_0.MYD' 问题的解决
- Can't create/write to file 'C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/#sql_970_0.MY
- Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
- 解决Mysql错误:Can't create/write to file 'C:\WINDOWS\TEMP\#sql_1344_0.MYD' (Errcode: 17)
- 解决Mysql错误:Can't create/write to file 'C:\WINDOWS\TEMP\#sql_1344_0.MYD' (Errcode: 17)
- 解决Mysql错误:Can't create/write to file 'C:\WINDOWS\TEMP\#sql_1344_0.MYD' (Errcode: 17)
- 解决MYSQL出现 Can't create/write to file 'C:/WINDOWS/TEMP/#sql_5c0_0.MYD'
- 读取Mysql数据表的错误 Can,create/write to file 'E:/temp/TEMP/#sql_9c4_0.MYI' Errcode:2
- mysql> desc tablename; ERROR 1 (HY000): Can't create/write to file '/tmp/#sql_909_0.MYI'
- Can't create/write to file '/tmp/#sql_909_0.MYI' (Errcode: 13)
- [hive]Can't create/write to file '/tmp/#sql_2290_0.MYI' (Errcode: 13)
- mysql Can't create/write to file 'C:\WINDOWS\...
- MySQL 诡异报错Can't create/write to file '/tmp/#sql_89b_0.MYI' (Errcode: 177 - File exists)
- MYSQL启动报1067错误 MySQL服务无法启动 或者Can't create/write to file#sql6e80_1905f7_3.MYI'
- 火狐浏览器获取flash上传文件的
- 图解https
- Hello World 解析二
- .Net中反序列化Json字符串的最佳方法
- 关于typedef的用法总结
- Can’t create/write to file ‘c:\temp/#sql-XXX.MYI′ -- 解决办法
- 51单片机寄存器功能一览表
- ie兼容问题大总结
- MonoTouch应用开发实践指南:使用C#和.NET开发iOS应用
- Tomcat6性能调优 出现java.lang.OutOfMemoryError: PermGen space
- BroadCastReceiver 简介
- 滑动窗口
- ubuntu ftp服务器搭建
- response的contentType 几种类型