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 指的是 一个属于‘HY’ 的 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,缩小数据表的空间。