我想将数据库表从我的生产服务器复制到本地测试机器,以便我可以对真实数据(的副本)执行测试。
我停止了 mysql 并删除了所有的 frm、MYD 和 MYI 文件。在这里启动 mysql 并查询 show tables 给出一个空的结果集。然后我关闭了 mysql,并从服务器上复制了所有的 frm、MYD 和 MYI 文件。当启动 mysql “show tables” 时按预期显示表但尝试查询它们时我收到错误消息
ERROR 1017 (HY000): Can't find file: './WhateverTableIQuery.frm' (errno: 13)
但是 WhateverTableIQuery.frm 文件在光盘上并且与服务器上的文件相同。
关于可能出现的问题有什么想法吗?
最佳答案
我建议尝试两件事:
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!
关于MySQL,复制表文件产生 "ERROR 1017 (HY000): Can' t find file :"even though its there there,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12106727/