在我的生产错误日志中,我偶尔会看到以下信息:
SQLSTATE[HY000]:一般性错误:1205 锁等待超时;请尝试重新启动事务
我知道哪个查询正在尝试访问数据库,但是否有办法找出那个特定时刻拥有锁的查询呢?
在我的生产错误日志中,我偶尔会看到以下信息:
SQLSTATE[HY000]:一般性错误:1205 锁等待超时;请尝试重新启动事务
我知道哪个查询正在尝试访问数据库,但是否有办法找出那个特定时刻拥有锁的查询呢?
激活MySQL general.log(磁盘密集型操作)并使用mysql_analyse_general_log.pl提取长时间运行的事务,例如:
--min-duration=your innodb_lock_wait_timeout value
然后禁用general.log。