已复制 MySQL 个数据库文件但表未显示在 PhPMyAdmin 中
Copied MySQL Database Files but Tables are not Showing in PhPMyAdmin
我最近尝试使用备份文件恢复 Wordpress 站点。我相信 Wordpress "export-all content" 函数实际上导出的很少。
我保留了 WAMP 文件的备份,并阅读了几篇成功将备份的数据库文件复制到新位置并且数据库工作正常的帖子:
Reinstalled WAMP, Wordpress Tables Not Found BUT Are in PHPMYADMIN
Restore the mysql database from .frm files
烦人的是这些对我不起作用。我试过两件事:
将数据库文件夹和备份的ib文件复制到相应位置。执行此操作并打开 PHP admin 后,会列出 WP 表,但我收到它们不存在的错误消息。请参阅随附的屏幕截图。
我创建了一个同名的新数据库,并重新安装了 wordpress,创建了空表。然后我将包含 .frm 文件的备份文件夹复制到新创建的文件夹中并替换了 ib 文件。这次的问题是 WAMP 无法启动,我被拒绝访问 PHPMyAdmin。错误信息2002主动拒绝
有一件事我注意到了。在备份文件中,ibdata1 文件自 2014 年 13 月 8 日起就没有备份过。而 ib_logfile1 和 iblogfile() 是 29/03/2015 和 19/04/2015。有没有可能是我的备份程序 (WD Smartware) 没有充分备份我的文件?如果是这样,我是在浪费时间,我应该从头开始重建吗?
感谢您的帮助。
您的 ibdata1
文件包含您所有的 metadata
数据库、table 空间、索引、table 结构等...它应该始终与最后一个一致其他所有内容被触及的日期对您来说似乎是 2015 年 4 月 19 日。如果您的 ibdata1
文件自 2014 年 8 月 13 日以来没有备份,这意味着您的所有元数据都将与您的 table (.frm and .ibd
) 文件一起出现。因此,虽然您可以在数据库中看到 table,但您无法访问数据,因为 tablespaces
完全未对齐。在这种情况下,您会遇到臭名昭著的薛定谔 mysql table 案例。简单解释一下,Mysql认为table同时存在和不存在。我将向您推荐此 Whosebug 以获取更多信息。
我不相信 Innodb_force_recovery
会在你的情况下起作用,但我想试一试也没什么坏处。 Percona 有一个 recovery tool for innodb 来修复不同步的 metadata
(table 空格)。你可以试一试。经验上不太好用,只能在linux开火,没必要去上班,网上也很少有关于用这个工具的。
我的建议是尽可能放弃并重新开始。
问题可能与文件权限有关。
要验证,请检查数据库的文件夹权限,方法是右键单击 /var/lib/mysql/ 中的文件夹位置,并确保文件夹的权限设置为 'root'[ 读写和使用=10=]
我最近尝试使用备份文件恢复 Wordpress 站点。我相信 Wordpress "export-all content" 函数实际上导出的很少。
我保留了 WAMP 文件的备份,并阅读了几篇成功将备份的数据库文件复制到新位置并且数据库工作正常的帖子:
Reinstalled WAMP, Wordpress Tables Not Found BUT Are in PHPMYADMIN
Restore the mysql database from .frm files
烦人的是这些对我不起作用。我试过两件事:
将数据库文件夹和备份的ib文件复制到相应位置。执行此操作并打开 PHP admin 后,会列出 WP 表,但我收到它们不存在的错误消息。请参阅随附的屏幕截图。
我创建了一个同名的新数据库,并重新安装了 wordpress,创建了空表。然后我将包含 .frm 文件的备份文件夹复制到新创建的文件夹中并替换了 ib 文件。这次的问题是 WAMP 无法启动,我被拒绝访问 PHPMyAdmin。错误信息2002主动拒绝
有一件事我注意到了。在备份文件中,ibdata1 文件自 2014 年 13 月 8 日起就没有备份过。而 ib_logfile1 和 iblogfile() 是 29/03/2015 和 19/04/2015。有没有可能是我的备份程序 (WD Smartware) 没有充分备份我的文件?如果是这样,我是在浪费时间,我应该从头开始重建吗?
感谢您的帮助。
您的 ibdata1
文件包含您所有的 metadata
数据库、table 空间、索引、table 结构等...它应该始终与最后一个一致其他所有内容被触及的日期对您来说似乎是 2015 年 4 月 19 日。如果您的 ibdata1
文件自 2014 年 8 月 13 日以来没有备份,这意味着您的所有元数据都将与您的 table (.frm and .ibd
) 文件一起出现。因此,虽然您可以在数据库中看到 table,但您无法访问数据,因为 tablespaces
完全未对齐。在这种情况下,您会遇到臭名昭著的薛定谔 mysql table 案例。简单解释一下,Mysql认为table同时存在和不存在。我将向您推荐此 Whosebug 以获取更多信息。
我不相信 Innodb_force_recovery
会在你的情况下起作用,但我想试一试也没什么坏处。 Percona 有一个 recovery tool for innodb 来修复不同步的 metadata
(table 空格)。你可以试一试。经验上不太好用,只能在linux开火,没必要去上班,网上也很少有关于用这个工具的。
我的建议是尽可能放弃并重新开始。
问题可能与文件权限有关。
要验证,请检查数据库的文件夹权限,方法是右键单击 /var/lib/mysql/ 中的文件夹位置,并确保文件夹的权限设置为 'root'[ 读写和使用=10=]