从INNODB TABLE MONITOR OUTPUT获取CREATE TABLE语句的工具?

时间:2014-09-29 16:37:44

标签: mysql innodb

我有INNODB TABLE MONITOR OUTPUT,需要从中获取CREATE TABLE语句。 有没有人知道可以生成它的工具?

提前谢谢!

2 个答案:

答案 0 :(得分:0)

我不知道可以生成它的工具。这是一个示例shell命令,可用于搜索表的名称并生成一系列SHOW CREATE TABLE命令:

grep '^TABLE: name .*/' <name-of-mysqld-error-log> | 
sed -e 's/^/SHOW CREATE /' -e 's/: name / `/' -e 's#/#`.`#' -e 's/,.*/`;/'

这应该是这样的一行:

TABLE: name test/parent, id 0 13, columns 6, indexes 2, appr.rows 299

进入这个:

SHOW CREATE TABLE `test`.`parent`;

然后收集输出并将其作为SQL脚本运行。

此外,您应该知道,从MySQL 5.6开始,不推荐使用通过创建特别命名的表激活的InnoDB监视器功能,并从MySQL 5.7中的产品中删除。

新的信息来源是INFORMATION_SCHEMA。有关从INFORMATION_SCHEMA中检索信息的示例,请参阅How can I use SHOW CREATE TABLE in a subquery?

答案 1 :(得分:0)

不是来自表监视器,但您可以从InnoDB字典生成表结构:

https://twindb.com/recover-table-structure-from-innodb-dictionary/