MySQL Error number: MY-011046; Symbol: ER_INNODB_DIFF_IN_REF_LEN; SQLSTATE: HY000 报错 故障修复 远程处理
文档解释
Error number: MY-011046; Symbol: ER_INNODB_DIFF_IN_REF_LEN; SQLSTATE: HY000
Message: Stored ref len is %lu, but table ref len is %lu.
。
错误说明:
MY-011046 ER_INNODB_DIFF_IN_REF_LEN错误是MySQL在运行具有复杂索引定义的ALTER TABLE等DML操作时发出的错误。也就是说,当MySQL引擎在该表上执行复杂操作时,如果检测到索引定义中不同字段长度参数不同时,就会发出这个错误。
常见案例
解决方法:
1、首先,开发者需要检查表的索引定义,查看任何字段的定义,看看有没有不必要的长度参数,或者不匹配的参数。
2、如果确定错误是由于索引定义发生变化引起的,可以针对具体的字段修改索引定义,让它们的参数相互匹配。
3、如果上述操作不管用,可以尝试舍弃之前的字段索引,然后重新创建一个新的索引,并将原有字段重新添加进去。
4、另外,也可以在客户机上使用mysql_options()函数将innodb_strict_mode参数设置为OFF(当它为ON时,这个错误才会发生),查看是否有助于解决问题。
香港美国云服务器首选后浪云,2H2G首月10元开通。
后浪云(www.IDC.Net)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
版权声明:
作者:后浪云
链接:https://www.idc.net/help/44174/
文章版权归作者所有,未经允许请勿转载。
THE END