2009-07-03 82 views
1

我只有一个目录托管多个站点的前一个服务器的备份。我有权访问我们的数据库的一些.sql备份,但有一些没有以这种方式备份。我在var/lib/mysql/db_name目录中查找my db中表的.MYD,.frm和.MYI文件。将原始MYSQL数据文件移动到不同的目录

我想知道是否有办法从这些文件中获取数据并将它们移动到新的现有mysql安装中?我尝试将文件从db文件夹复制到具有完全相同名称的db文件夹,但尝试访问任何表时仍出现“无法找到db_name/table_name.frm”错误。他们确实显示在phpmyadmin表中,尝试访问表时出现错误。

这可能吗?如果是这样,我该如何去处理这些表格文件并将它们转化为可用数据?

如果我的问题或解释没有任何意义,我很抱歉。这是一个正在进行的11小时以上紧急服务器恢复项目的一部分,这个项目在我今天突然出现,所以我的大脑被炸了。我会回答任何必要的问题。

回答

1

你是否检查过/var/lib/mysql/db_name/中的文件属于mysql而不是root?通常复制文件应该“只是工作”(当然它有,并为我)。我假设你使用的是相同或非常相似的MySQL版本?

+0

Mysql版本是一样的。所有文件都由mysql拥有。 – Mesidin 2009-07-03 02:17:56

+0

我进一步假设它是相同的系统类型,并且文件名的情况也完全相同。数据库文件是否可以被MySQL读取(即所有者的权限是r/w)? MySQL已重新启动?你有没有试过停止MySQL,复制文件和设置权限等,然后重新启动MySQL? 除了所有这些基础知识,我都没有想法。 – 2009-07-06 04:54:26

1

您确实需要恢复与该数据库相关的所有内容,包括您之前安装的匹配'mysql'数据库。