试图将ARCHIVE引擎上的旧mysql数据库转换为innodb

时间:2017-12-28 01:23:57

标签: mysql storage innodb archive

我有一个非常老的数据库,显然是使用名为存档存储引擎的引擎构建的 - 显然不支持使用更新版本的MySQL开箱即用 - 显然你在那里添加了一个开关编译,在...中构建它。

Anywho - 我试图通过以下方式以某种方式恢复此数据: 1)转换所有表格'引擎到innodb - 有一个版本的mysql,它支持archive和innodb吗? 要么 2)以某种方式找到一个仍然支持它的正常运行的mysql版本,所以我可以以某种方式转储表并更改sql文件以在导入时实现innodb?

这些都可能吗?任何指导或指向正确的方向都将是非常有帮助的。我一开始并不了解这些引擎,更不用说存档了。我甚至可能会问不可能的事情?

提前感谢大家!

编辑:我能够下载支持所有引擎的旧版mysql。能够从根mysql目录加载所有数据库文件和ib *文件(我在另一篇文章中读取是必要的),并且我能够将每个表作为单独的文件转储出来。然后我用ENGINE = InnoDB替换了所有ENGINE = ARCHIVE,并且能够将这些表导回到服务器mysql中并且全部工作。

1 个答案:

答案 0 :(得分:0)

更改日志意味着尚未从MySQL或MariaDB中删除ARCHIVE引擎。

您正在运行什么版本。

你可以从Archive表中SELECT吗?如果是这样,那么这应该有效:

CREATE TABLE new ( ... ) ENGINE=InnoDB
    SELECT * FROM my_archive_table;

目录中存在哪些文件具有数据库名称?应该有一个my_archive_table.frm文件和至少一个其他文件。

这给你带来了什么:

SHOW TABLE STATUS LIKE 'my_archive_table';