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


文档解释

Error number: MY-012737; Symbol: ER_IB_MSG_912; SQLSTATE: HY000

Message: %s

错误说明

ER_IB_MSG_912是MySQL中发生的错误消息。它指出正在操作的表超出了InnoDB数据文件的最大大小。该错误的消息和MySQL代码存储在“errmsg.sys”文件中,可以在“ / data / errmsg.sys”文件中找到。

常见案例

当表的大小超出了InnoDB数据文件的最大大小时,就会出现此错误消息。InnoDB数据文件的最大大小一般默认为4GB。如果表的大小超出了4GB,就会出现此错误。

解决方法

要解决此错误,首先必须将InnoDB数据文件的最大大小增加到大于表的大小,然后将表的索引重新构建为较小的索引。

要增加InnoDB数据文件的最大大小,首先必须创建新的my.cnf文件,该文件将在/etc目录中创建。然后,将以下指令添加到my.cnf文件中:

innodb_data_file_path = ibdata1:10M:autoextend

最后,重启MySQL服务器,使新的my.cnf文件生效。这将增加InnoDB数据文件的最大大小到指定限制。

然后,需要重新构建表的索引,以减小表的大小。重新构建索引有两种方法,一种是使用ALTER TABLE关键字,另一种是使用REPAIR TABLE关键字。

使用ALTER TABLE关键字重新构建表的索引,语法如下:

ALTER TABLE table_name ADD INDEX index_name (column_name);

使用REPAIR TABLE关键字重新构建表的索引,语法如下:

REPAIR TABLE table_name;

这样,就可以解决MySQL中ER_IB_MSG_912错误导致的问题。