MySQL Error number: MY-012840; Symbol: ER_IB_MSG_1015; SQLSTATE: HY000

文档解释

Error number: MY-012840; Symbol: ER_IB_MSG_1015; SQLSTATE: HY000

Message: %s

错误说明

MY-012840(ER_IB_MSG_1015)是MySQL错误的SQLSTATE“HY000”的一个特定名称,它指示InnoDB消息:表中的表’

‘存在,但不是InnoDB表。

常见案例

常见的案例是在进行某些表操作,由于表的存储引擎不支持该操作,而出现MY-012840(ER_IB_MSG_1015)错误。例如,尝试在MySQL中一条具有MyISAM引擎的表上运行innodb_file_per_table选项时,MySQL会返回此错误。

解决方法

有几种方法可以解决这个问题,可以使用MySQL查询以更改表的存储引擎到InnoDB:

ALTER TABLE table_name ENGINE = InnoDB;

另一种解决方法是使用命令行或专业的图形用户界面(GUI)工具(如MySQL Workbench)来重建表,如下所示:

打开命令提示符

转到MySQL所在的bin文件夹,运行如下命令:mysql –user=username –password dbname

键入以下命令(包含反引号)应用更改:ALTER TABLE `table_name` ENGINE = InnoDB;

退出MySQL并关闭命令提示符

一般处理方法及步骤

打开MySQL Workbench

登录MySQL帐号

在Navigator中,单击Schemas,选择有问题的数据库

右键单击表,选择Table Properties

在Table Options选项卡中,查看Storage Type。

解决MY-020848(ER_IB_MSG_1015)错误的一般步骤可以缩减为以下几点:

检查表的存储引擎。

如果支持InnoDB,则使用 MySQL 查询更改表的存储引擎到InnoDB。

如果不支持InnoDB,则使用命令行或专业的图形用户界面(GUI)工具来重建表,并选择InnoDB作为新表的引擎类型。

你可能感兴趣的