Error number: MY-012695; Symbol: ER_IB_MSG_870; SQLSTATE: HY000
Message: %s
MY-012695,名称为ER_IB_MSG_870,SQLSTATE HY000的MySQL错误是由于触发器尝试在不同的表中执行INSERT或UPDATE语句而引起的错误。
错误消息:`The total number of locks exceeds the lock table size`(锁定总数超过锁定表大小)
错误说明:
本错误指示MySQL连接用于处理MySQL事务请求所需的锁定太多,超过了在my.cnf或者my-huge.cnf文件中配置的锁定表大小,引起触发器在不同表中执行INSERT或UPDATE时发生的错误。同时,MySQL中的锁定表空间不足也可能会导致事务在执行中无法记录活动或状态,也可能会导致不必要的锁定活动。
解决方法:
解决MY-012695,ER_IB_MSG_870,SQLSTATE HY000错误的最佳办法是增加MySQL的锁定表空间,设置更多可用的存储空间,接受更多的锁定请求,这样MySQL事务就可以更加高效地运行,同时也可以避免失败的操作。要实现这一点,需要设置/目录中的my.cnf或者my-huge.cnf文件。在这之前,也可以重启MySQL服务器,释放掉无用的锁定资源。最后,如果重启服务状态下仍然无法解决此错误,可以通过以下SQL语句查看锁定状况来查看是什么原因引发了此错误:
SHOW SESSION STATUS LIKE ‘Table_locks_waited’;
SHOW STATUS LIKE ‘Table_locks_waited’;
SHOW OPEN TABLES WHERE In_use > 0;