我想将数据库表从我的生产服务器复制到本地测试机器,这样我就可以执行真实数据的测试(副本)。
我停止了mysql并删除了所有的frm,MYD和MYI文件。在这里启动mysql并查询show tables会给出一个空结果集。然后我关闭了mysql并从服务器复制了所有frm,MYD和MYI文件。当启动mysql“show tables”按预期显示表但尝试查询它时,我收到错误消息
ERROR 1017(HY000):找不到文件:'./WhateverTableIQuery.frm' (错误:13)
但WhateverTableIQuery.frm文件位于光盘上,与服务器上的文件相同。
关于可能出现什么问题的任何想法?
答案 0 :(得分:34)
我建议尝试两件事:
<强> 1。查看权限
确保您的MySQL数据目录及其中的所有文件归mysql用户和mysql组所有。如果您以root用户身份将文件复制到本地测试计算机上,则可能不是这种情况:
chown -R mysql:mysql your-mysql-data-dir-here
<强> 2。修复损坏的表格
使用mysqlcheck检查损坏的表并在发现任何表时进行修复:
mysqlcheck -u root -p --auto-repair --all-databases
如果你之后仍然无法使用这些表,那就给mysqldump一个去吧!
答案 1 :(得分:2)
使用frm和MYD文件恢复MySQL数据库后,我遇到了同样的问题。花了好几个小时后,我发现我已经配置了数据库目录,只对mysql用户具有读写权限,但没有执行权限。向数据库目录添加执行权限后,问题就解决了。
答案 2 :(得分:0)
几分钟前我确实遇到了同样的问题,我花了几分钟才意识到我没有足够的权限来访问我想导入的.sql文件。
为了解决这个问题,您可以将文件移动到您知道可以访问的位置(与您当前的用户一起)。 (例如〜/ Home_directory)。
我希望我能帮助一些正在寻找答案的孤独的灵魂。就像我一样。
答案 3 :(得分:0)
我有同样的问题并做了这个......
我确定有更好的方法可以解决这个问题,但这对我有用。
答案 4 :(得分:0)
我更改了mysql-data-directory和{{1}}文件的权限 如果以root用户身份使用:
如果以非root用户身份使用:
答案 5 :(得分:0)
此错误,&#34;一般错误:1017无法找到文件&#34;,如果表格不存在,也会在带有WAMP的Windows上发生。
答案 6 :(得分:0)
尝试以下事项:
其中一个可行。