MySQL Error number: MY-012146; Symbol: ER_IB_MSG_321; SQLSTATE: HY000 报错 故障修复 远程处理
文档解释
Error number: MY-012146; Symbol: ER_IB_MSG_321; SQLSTATE: HY000
Message: %s
错误说明
MySQL的ER_IB_MSG_321错误是由MySQL的InnoDB存储引擎抛出的,这个错误会出现在MySQL(5.5及以上版本)中。它指示用户试图执行一个操作,但是因为InnoDB表格结构或者生成过程(比如建立索引)已经改变,导致执行失败。
常见案例
MySQL ER_IB_MSG_321错误通常出现在使用ALTER TABLE对表的结构或者元信息进行变更的时候,比如增删字段,修改数据类型,更改表的属性等操作。
解决方法
(1)检查Server SID 确保所有的MySQL Server实例在系统上都有唯一的Server SID,不要使用重复的Server SID。
(2)重装MySQL 为了解决Server SID不唯一的问题,可以尝试重新安装MySQL Server,并且为每个实例分配一个唯一的Server SID。
(3)创建新版本的表 把现有的表复制到一个新版本的表,并在新表上执行SQL操作,将旧表中的数据复制到新表中来。
(4)修复索引 如果将字段从索引中移除可能也会导致这个错误,可以尝试在索引字段中添加以前移除的字段,重建所有崩溃的索引。
(5)关闭MySQL 也可以尝试重启MySQL Server,这个操作可以改变现有MySQL Server的SID,然后重新启动MySQL Server。