MySQL Error number: MY-013072; Symbol: ER_IB_MSG_1247; SQLSTATE: HY000 报错 故障修复 远程处理

文档解释

Error number: MY-013072; Symbol: ER_IB_MSG_1247; SQLSTATE: HY000

Message: Starting shutdown…

错误说明:

MySQL错误ER_IB_MSG_1247,其MySQL错误编号为MY-013072,SQLSTATE为HY000,指示InnoDB表空间维护但是InnoDB存储引擎已被禁用。

常见案例

当用户尝试在MySQL中针对InnoDB表进行一些操作时,可能会遇到此错误。比如,如果用户试图ALTER TABLE,CREATE TABLE,DROP TABLE或者运行任何表维护操作,可能会导致这个错误。

解决方法:

第一步:明确ER_IB_MSG_1247是因为InnoDB存储引擎被禁用才发生的错误。因此,首先要确保InnoDB引擎已启用。要检查,可以使用SHOW ENGINES命令来确定InnoDB是否已启用,如下所示:

SHOW ENGINES;

第二步:如果InnoDB未启用,则可以使用SET GLOBAL innodb = TRUE命令来启用InnoDB引擎。或者,您也可以打开MySQL配置文件(通常是my.cnf)并将innodb_engine项设置为on。要重启MySQL服务,以使设置生效,可以使用以下命令:

sudo service mysql restart

第三步:在InnoDB引擎启用之后,可以重试操作,特别是运行表维护操作。如果操作仍然引发ER_IB_MSG_1247错误,则可以使用提供的替代解决方案:

• 对于ALTER TABLE,您可以尝试使用INPLACE算法而不是默认的COPY算法。如果需要,可以在ALTER TABLE表达式中使用ALGORITHM参数来指定算法。

• 对于CREATE TABLE,您可以考虑在表定义中增加建议索引。此外,在某些情况下,您可以试图为表指定存储引擎。

• 对于DROP TABLE,建议您在DROP TABLE表达式中使用ONLINE参数(ONLINE参数需要MySQL 5.6.4或更高版本),以最大程度地减少维护时间。

综上所述,可以使用上述几个步骤来解决MySQL错误ER_IB_MSG_1247。


数据运维技术 » MySQL Error number: MY-013072; Symbol: ER_IB_MSG_1247; SQLSTATE: HY000 报错 故障修复 远程处理