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自己无法操作,所以也抛出这个错误来。
现在这个问题貌似已经解决,但是否真的已解决还有待接下来几天观察,我的分析是不是正确也有待历史来作出裁定,呵呵。
另外,我也在网上搜了一把,发现很多人也遇到这个问题,但多数人都认为是目录没有写权限而导致,也有部分人知道是杀软导致的这个问题,却没有深入的分析其原因,我就当给有相同遭遇的弟兄抛个砖吧。
一、推荐使用迅雷或快车等多线程下载软件下载本站资源。
二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。
三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!
四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.
五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。
六、如需转载本站资源,请注明转载来自并附带链接
七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com
- 1CSS控制文字在Div最底部显示
- 2Thinkphp5如何配置IP+端口访问项目模块
- 3elementUI el-dialog弹框居中
- 4教你如何搭建及优化站点
- 5国内互联网视频行业运营分析
- 6service mysql start出错,mysql不能启动,解决mysql: unrecognized service错误
- 7CSS实现悬浮顶部的Div工具栏
- 8记一次Thinkphp5.1框架mysql数据库崩溃(SQLSTATE [08004] Too many connections)
- 9连接SQL Server数据库提示:Login failed for user 'sa'错误的解决方案
- 10Thinkphp3.2在centos7上设置计划任务的方法