我正在运行以下MySQL UPDATE
语句:
mysql> update customer set account_import_id = 1;
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
我没有使用事务,为什么会出现这个错误?我甚至try 重新启动我的MySQL服务器,但都没有用.
该表有406733行.
我正在运行以下MySQL UPDATE
语句:
mysql> update customer set account_import_id = 1;
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
我没有使用事务,为什么会出现这个错误?我甚至try 重新启动我的MySQL服务器,但都没有用.
该表有406733行.
您正在使用一个事务;autocommit不会禁用事务,它只是让它们在语句末尾自动提交.
发生的情况是,另一个线程在某条记录上持有记录锁(您正在更新表中的每条记录!)时间太长,线程超时.
您可以通过发布
SHOW ENGINE INNODB STATUS
事件发生后(在SQL编辑器中).理想情况下,在安静的测试机器上进行此操作.