MySQL Error number: MY-012536; Symbol: ER_IB_MSG_711; SQLSTATE: HY000 报错 故障修复 远程处理
文档解释
Error number: MY-012536; Symbol: ER_IB_MSG_711; SQLSTATE: HY000
Message: %s
错误说明
ER_IB_MSG_711,属于MySQL错误码,该错误代码表示由InnoDB内部生成的错误,意为“内部传输错误:指定的字段超出了表的最大行长度,请加以检查原始定义中的定义和创建索引时的索引空间分配”,这是由于表在定义时,指定的字段超出了表的最大行长度而导致的。
常见案例
此错误常发生在MySQL表创建时,如果用户指定的字段超出了innodb表的最大行长度(65535字节),就会报该错误。比如,在创建表时,用户定义了一个字段,其长度大于了InnoDB表的最大行长度。
解决方法
解决此问题的最佳办法是,针对该表的字段信息进行重新定义,将字段的数据类型最大空间压缩到最小位置。可先检查字段的长度,比如用户定义一个VARCHAR(65533),其实可以定义成VARCHAR(500),其中500是一个可接受的字符串类型。此外,用户也可以执行“ALTER TABLE”操作,改变指定表的字段属性,将指定表的定义优化,让表可以安全使用索引空间。同时,也可以通过在mysql代码里设置innodb_page_size来改变表的最大行长度,只有将innodb_page_size设置为16KB或更大才能破坏该最大行限制,但当然也要注意是否会带来一些附带的性能问题。