今天,我很高兴丢失了所有数据库。
幸运的是,我的data
文件夹仍然完好无损,并且包含所有.frm
文件.ibd
。
谷歌搜索了几个小时,我想出了一个解决方案,帮助我重新创建.sql
文件和表结构,然后导入.ibd
文件。
所有这一切的最大帮手是mysqlfrm
,我发现它已停产。不确定没有它我是否能够做到这一点。
这是我的过程:
将表导出到.sql
文件
mysqlfrm --server=root:[email protected] ./*.frm --port 3301 > ./dbtables.sql
获取所有创建表命令,以便更轻松地丢弃/导入表。这与dbtables.sql
文件一起用于获取所有实例,create table
因此更容易查找和替换ALTER TABLE mytable DISCARD TABLESPACE
/ IMPORT TABLESPACE
。
^[CREATETABLE].*+$
丢弃.ibd
文件命令:
ALTER TABLE mytable DISCARD TABLESPACE;
丢弃后,将.ibd
数据库文件夹中的文件复制到“实时”版本中。
导入.ibd
文件命令:
ALTER TABLE wp_actionscheduler_actions IMPORT TABLESPACE;
您知道仅使用.frm
,.ibd
文件来恢复数据库的现代方法吗?
Google 和 Stack Overflow 主要指向不再起作用的旧方法/工具。
任何操作系统的解决方案都会很棒,因为我可以访问所有操作系统,因此希望可以毫无问题地测试它们。