MySQL Error number: MY-012929; Symbol: ER_IB_MSG_1104; SQLSTATE: HY000 报错 故障修复 远程处理
文档解释
Error number: MY-012929; Symbol: ER_IB_MSG_1104; SQLSTATE: HY000
Message: InnoDB Database creation was aborted %swith error %s. You may need to delete the ibdata1 file before trying to start up again.
错误说明:
ER_IB_MSG_1104是MySQL的错误编号,其错误消息是“无法更新或删除parent_rowid,可能已更改parent_table”。引发这个错误的原因是当InnoDB表出现死锁和其他外部活动时,更新一个表行时将脏行传播 (
常见案例
当mysql更新或者删除一个parent_rowid,但父表发生变动时,就会发生这个错误。这一般是由于开发人员在另一个会话内执行更新或者删除某一行,然后另一个会话更改父表,导致子表更新到错误的行,进而使得上面的错误发生。
解决方法:
一般来说,该错误的解决方法是确保所有会话使用相同的事务隔离级别,以便避免另一个会话中多个查询可能更改给定行的事实。此外,使用合理的索引也可以减少上述错误发生的机会。最后,也可以考虑使用“强制事务复制(force transaction replication)”,来帮助分辨出子表和父表之间的关系。