MySQL,复制表文件引起"ERROR 1017(HY000):找不到文件:"即使它在那里

use*_*094 12 mysql

我想将数据库表从我的生产服务器复制到本地测试机器,这样我就可以执行真实数据的测试(副本).

我停止了mysql并删除了所有的frm,MYD和MYI文件.在这里启动mysql并查询show tables会给出一个空结果集.然后我关闭了mysql并从服务器复制了所有frm,MYD和MYI文件.当启动mysql"show tables"按预期显示表但尝试查询它时,我收到错误消息

ERROR 1017(HY000):找不到文件:'./WhateverTableIQuery.frm'(错误号码:13)

但WhateverTableIQuery.frm文件位于光盘上,与服务器上的文件相同.

关于什么可能是问题的任何想法?

Tom*_*Mac 34

我建议尝试两件事:

1.检查权限

确保您的MySQL数据目录及其中的所有文件归mysql用户和mysql组所有.如果您以root用户身份将文件复制到本地测试计算机上,则可能不是这种情况:

chown -R mysql:mysql your-mysql-data-dir-here
Run Code Online (Sandbox Code Playgroud)

2.修复损坏的表格

使用mysqlcheck检查损坏的表并在发现任何情况时修复它们:

mysqlcheck -u root -p --auto-repair --all-databases
Run Code Online (Sandbox Code Playgroud)

如果你之后仍然无法使用表格,那就给mysqldump一个去吧!