错误代码: 1> 1017 - Can't find file: '.\estore\[email protected]' (errno: 22)解决
今天操作数据库发现一个问题,很是尴尬,问题描述如下:
点击数据表
抱着学习的太多去网上搜索准备解决问题,然而却都是这样的。
-------------------------------------------搜索结果1-------------------------------------------------
如果重启服务器前没有关闭mysql,MySql的MyiSAM表很有可能会出现 ERROR #1017 :Can't find file: '/xxx.frm' 的错误,
出现这个问题的原因不是'/xxx.frm'这个文件不见了,而是这些文件的权限(应该要是mysql)不知道为什么变成了root。
解决方法:cd到xxx.frm文件所在目录下,执行一下命令:chown mysql.mysql * 将所有文件的权限都改过来就可以了!
-------------------------------------------搜索结束-----------------------------------------------------
但是经过测试发现这个方式试过发现是在Linux操作系统下的解决方法(能否解决不知),但是博主是windows操作系统,对linux操作系统一知半解,一句话不懂,解决失败。
搜索了下chown是linux下的。
换个方式进行搜索发现另一种结果是这样的。
----------------------------------------------搜索结果2------------------------------------------
1、错误描述
1 queries executed, 0 success, 1 errors, 0 warnings
查询:desc t_driver_info;
错误代码: 1017
Can't find file: '.\bus\[email protected]' (errno: 22 - Invalid argument)
执行耗时 : 0 sec
传送时间 : 0 sec
总耗时 : 0.011 sec
2、错误原因
创建t_driver_info后,利用desc查看表结构,出现这个错误
DESC t_driver_info;
3、解决办法
不能找到.frm文件,并不是说明这个文件不存在,可能是没有权限,或服务器中断
(1)首先,检查服务器是否中断,关闭MySQL客户端,然后重启;
(2)找到该文件,对文件授权。
---------------------------------------------搜索结束------------------------------------------------------
这个怎么说囊,我反正是用这种方式没解决。什么对.frm文件授权,抱歉我真的不会。博主操作:
找到.frm文件,这个文件在mysql安装包(c盘),data文件夹中找到数据库名。发现文件都存在,这个怎么回事,和上面报的表不存在的错误不相符吗。
博主解决方法:我的测试成功了,仅供参考
将上面所有的.frm文件复制到一个新的文件夹中,并命名为你的数据库名,把你现在的文件夹替换了。就这么简单,需要关闭与数据库的连接,再打开。简单完成。
这种方式怎么说,有点low,就像你把你的数据库删了,重新导入一样(这也是一种解决方法)。
但是解决问题就算笨也还可以吧,希望对你有帮助。