我想在新计算机上使用非工作服务器备份中的 mysql 数据库
Posted
技术标签:
【中文标题】我想在新计算机上使用非工作服务器备份中的 mysql 数据库【英文标题】:I Want to use a mysql database from a backup of a non-working server on a new computer 【发布时间】:2015-11-14 11:14:24 【问题描述】:我的数据库来自非工作服务器的备份。
我的数据库是服务器上的teachercenter 文件夹,其中包含每个表名的文件,扩展名为*.frm
。
我从以下位置复制数据库:
C:\Users\xxx\Downloads\wamp-saved\wamp\bin\mysql\mysql5.1.36\data\
并将该文件夹粘贴到我的计算机上:
C:\wamp\bin\mysql\mysql5.6.17\data
我意识到这两个 mysql 是不同的版本,但我只是想使用数据库文件。
当我在新计算机上启动 phpMyAdmin 时,它会在数据库列表中显示teachercenter 数据库。
另外,如果我点击teachercenter 数据库旁边的加号,我可以看到我的数据库表列表!
但是如果我点击teachercenter 数据库本身,我会得到错误:
在数据库中找不到表。
如何让mysql在新电脑上的teachercenter数据库上识别并让我操作(PHPMyAdmin)?
我尝试启动/使用 wampmanager.exe,但我没有看到它正在运行以使用它的菜单。
【问题讨论】:
我不会直接复制 frm 文件,而是将数据库导出到 .sql 文件,然后再导入。很可能是数据库类型不同的情况;值得注意的是,frm 适用于 myisam,不适用于 innodb。 很遗憾,原始服务器无法用于 sql 导出。我看到较新的 wamp 服务器默认为引擎 innodb。但是,我在新的 wamp 上做了一个新表,它使用了 innodb。但是当我查看数据文件夹时,它有三个文件:db.opt、test@0020table@00201.frm 和 test@0020table@00201.ibd。 我需要抢救我的桌子。我可以将旧的 mysql 安装到使用 myisam 作为存储引擎的 wamp 服务器中吗?我可以指示当前的 wamp 服务器 mysql 使用引擎 myisam 来查看我拥有的这些文件吗? 我可以从备份中复制整个 wamp 文件夹树并将其放入我的 C: 驱动器并启动它吗?那会给我一个理解 .frm 文件的mysql。然后我可以对表进行 sql 导出。但是如何将复制的 wamp 文件夹放入工作 wamp? 【参考方案1】:问题解决了:
在:***.com/questions/10934745/... 对我的问题给出了一个简单的答案,如下所示:“是的,这是可能的。仅将 .frm 文件复制到数据库文件夹是不够的 但您还需要将 ib_logfiles 和 ibdata 文件复制到您的数据文件夹中。"我将 ib_logfiles 和 ibdata 文件复制到我的数据文件夹中,瞧! PHPMyAdmin 对数据库及其表非常满意,我可以对表记录进行 SQL 导出。
总结:要使用 MySQL 不理解的 *.frm 文件的 MySQL 数据库,只需从获得 .frm 文件的任何位置复制 ib_logfiles 和 ibdata 文件,然后将这两个文件放入数据中要使用的数据库旁边的文件夹。一旦你这样做了,MySQL 数据库引擎将识别你的数据库,并且你可以在你完全可操作的数据库上进行所有 PHPMyAdmin 操作。
【讨论】:
【参考方案2】:因为你不能确定 MyISAM 存储格式是否向后兼容,你最安全的选择是安装 MySql 5.1.36,使用 mysqldump 将你的整个数据库导出为纯 SQL,安装 MySql 5.6.17 然后导入你的数据使用 SQL。
此外,这可能会产生更好的结果,因为您的索引是重建的。
【讨论】:
问题已解决:***.com/questions/10934745/… 对我的问题给出了一个简单的答案,如下所示:“是的,这是可能的。仅将 .frm 文件复制到数据库文件夹,但您还需要将 ib_logfiles 和 ibdata 文件复制到您的数据文件夹中。”我将 ib_logfiles 和 ibdata 文件复制到我的数据文件夹中,瞧! PHPMyAdmin 对数据库和表非常满意,我可以对表记录进行 SQL 导出。以上是关于我想在新计算机上使用非工作服务器备份中的 mysql 数据库的主要内容,如果未能解决你的问题,请参考以下文章