MySQL Error number: MY-012135; Symbol: ER_IB_MSG_310; SQLSTATE: HY000

文档解释

Error number: MY-012135; Symbol: ER_IB_MSG_310; SQLSTATE: HY000

Message: %s

错误说明

MySQL 错误 MY-012135 (ER_IB_MSG_310) 对应 SQLSTATE 值 HY000,这是一个 Innobase 错误,由 InnoDB 表引擎返回的, 其中 HY 指的是 一个属于'HYxxx’ 的 SQLSTATE 值,该部分指示全局错误(generic error),通常不可恢复。 本条错误提示消息为:“对不起,此数据库表太大!请压缩它。”

常见案例

当要插入一个 InnoDB 表中的行,且该行会使表超过允许的最大大小或者磁盘页数时,就会发生该错误 MY-012135 (ER_IB_MSG_310)。例如为一个 InnoDB 表定义的磁盘空间用完了,或者通过 ALTER TABLE 语句更改表的结构,向里面插入新行时,也可能发生这个错误。

解决方法

要解决这个错误 MY-012135 (ER_IB_MSG_310),你可以做的有以下几种操作:

1. 仔细地检查一下表的架构,看看是否添加字段时,设置的“宽度”参数有没有超出表允许的范围。

2. 尝试不断地优化表让其调整到一个更合理的空间来释放 InnoDB 表所用空间。

3. 尝试提升InnoDB表最大允许的行数。

4. 把该 InnoDB 表的数据备份下来,并且清空(drop)或者重命名(rename)一下该表,最后重新创建(create)一下同样的表并把数据重新插入表中。

5. 将该 InnoDB 表进行分割,把数据分别存储到不同的 InnoDB 表中,然后存储在不同的文件系统中,从而放弃数据行中的外键约束。

6. 将 InnoDB 表改为 MyISAM,缩小数据表的空间。

你可能感兴趣的