当我们跑MySQL服务器查看日志的时候,如果发现如下类似日志:

171013 2:04:25 [ERROR] /usr/local/mysql/bin/mysqld: Sort aborted: Lock wait timeout exceeded; try restarting transaction
171013 2:06:26 [ERROR] /usr/local/mysql/bin/mysqld: Lock wait timeout exceeded; try restarting transaction
171013 2:06:26 [ERROR] /usr/local/mysql/bin/mysqld: Sort aborted: Lock wait timeout exceeded; try restarting transaction
171013 2:07:33 [ERROR] /usr/local/mysql/bin/mysqld: Lock wait timeout exceeded; try restarting transaction
…..

出现这些日志主要原因往往是,有些事务执行过dml操作,然后一直没commit/rollback,新事务一直等待旧事务释放锁资源,出现锁等待超时,即新事务等待时间超过了mysql设置的lock_wait_timeout(指的是事务等待获取资源等待的最长时间,超过这个时间还未分配到资源则会返回应用失败,参数的时间单位是秒,最小可设置为1s)该参数设定的值后,mysql又尝试重新执行此事务。

阅读剩下更多

默认配图