尝试从 MySQL 数据目录恢复/导入/传输数据库

cec*_*i0n 6 mysql phpmyadmin

我使用phpMyAdmin->export创建我的数据库的备份,但我现在发现它没有导出整个数据库,一些表被遗漏/拒绝。

然而,在进行导出时,我还保存了位于mysql/data/的整个数据目录,其中包含许多.ibd.frm文件类型,这似乎反映了我曾经拥有的表。

我试图复制整个数据目录并将其粘贴到我的新设置中,但我不确定MySQL / phpMyAdmin的版本是否相同,如何从旧数据目录中找到 MySQL 版本?可能在那些.frm / .ibd文件之一中?

当我粘贴整个数据文件夹时,数据库中的某些表正常工作,但有些表显示以下错误。

#1033 - Incorrect information in file: '.\db\a_table.frm'
Run Code Online (Sandbox Code Playgroud)

此外,似乎每个显示相同错误消息的表都在phpMyAdminStructure视图中的Collat​​ion下标记为正在使用

我能做些什么来解决这个问题?这是什么意思?

我想知道如果我重新创建我的旧操作系统设置,它可以工作吗?有没有更好的办法?

cec*_*i0n 1

我设法找到了解决方法,但我对此并不满意。我安装了之前的EasyPHP设置,并将旧的MySQL *data* 目录复制到EasyPHP *MySQL* 数据目录中。

这次数据库能够正确读取.ibd / .frm文件。(即使这些文件根本没有改变)

然后我使用phpMyAdmin导出数据库(这次所有表/数据都存储在 sql 文件中)

然后我禁用EasyPHP环境并启动我的新环境,并使用phpMyAdmin->import和新的 sql 文件正确加载数据。

总的来说,我认为MySQL不能简单地输出某种类型的通知,指出.ini环境变量没有设置对应于.ibd / .frm文件,而不是仅仅输出不正确的信息,让用户蒙在鼓里。需要思考的角度。经过谷歌搜索后,似乎许多人似乎相信他们的数据已损坏,但事实并非如此。