innodb_lock_wait_timeout 参数
innodb_lock_wait_timeout 参数指定了 InnoDB 引擎在等待行级锁或间隙锁的最长时间(以秒为单位)。如果一个事务在超过该时间后仍然无法获取锁,那么该事务就会被取消,并返回一个错误消息。
以下情况可能会因为此参数报错:
在同一事务内先后对同一条数据进行插入和更新操作;
多台服务器(web)或客户端操作同一数据库;
瞬时出现高并发现象;
默认情况下,innodb_lock_wait_timeout 参数的值为 50 秒。如果你的系统有大量并发事务,并且经常出现锁等待超时的问题,那么你可以通过调整该参数的值来降低锁等待时间,以提高系统的并发度。
要修改 innodb_lock_wait_timeout 参数的值,需要在 my.cnf 配置文件中进行设置,例如
[mysqld]
innodb_lock_wait_timeout=20
修改配置文件后,需要重启 MySQL 服务才能使新的设置生效。