首页 > 代码库 > 数据库 1205 Error 'Lock wait timeout exceeded; try restarting transaction' on query
数据库 1205 Error 'Lock wait timeout exceeded; try restarting transaction' on query
收到报警,mysql的从数据库在同步的过程出现问题,已停止同步。
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.199.50
Master_User: replication
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000381
Read_Master_Log_Pos: 625068573
Relay_Log_File: mysql-zhaowei-bj-199-52-relay-bin.000577
Relay_Log_Pos: 542496522
Relay_Master_Log_File: mysql-bin.000381
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1205
Last_Error: Error ‘Lock wait timeout exceeded; try restarting transaction‘ on query. Default database: ‘v506‘. Query: ‘update account_log set createById=806378,createTime=‘2013-03-01 18:41:23.0‘,lastLogin=‘2015-01-14 11:04:53‘,lastPost=null,loginTimes=419,sessionId=null,machineCode=null,accountIP=‘123.133.132.196‘,accountBrowser=null,lastAccessed=‘web‘,lastTimezone=null,continuous=2 where accountId=806378‘
Skip_Counter: 0
Exec_Master_Log_Pos: 542496377
Relay_Log_Space: 625068934
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 1205
Last_SQL_Error: Error ‘Lock wait timeout exceeded; try restarting transaction‘ on query. Default database: ‘v506‘. Query: ‘update account_log set createById=806378,createTime=‘2013-03-01 18:41:23.0‘,lastLogin=‘2015-01-14 11:04:53‘,lastPost=null,loginTimes=419,sessionId=null,machineCode=null,accountIP=‘123.133.132.196‘,accountBrowser=null,lastAccessed=‘web‘,lastTimezone=null,continuous=2 where accountId=806378‘
1 row in set (0.00 sec)
经查询:
mysql> show engine innodb status\G
*************************** 1. row ***************************
Type: InnoDB
Name:
Status:
=====================================
150114 11:34:27 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 18 seconds
----------
SEMAPHORES
----------
OS WAIT ARRAY INFO: reservation count 35531892, signal count 35529980
Mutex spin waits 0, rounds 24045693, OS waits 327309
RW-shared spins 79151793, OS waits 35122704; RW-excl spins 774165, OS waits 46983
------------
TRANSACTIONS
------------
Trx id counter 2 146598135
Purge done for trx‘s n:o < 2 146596925 undo n:o < 0 0
History list length 9
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 2 146598134, not started, process no 14634, OS thread id 1179748672
MySQL thread id 28277, query id 1416247560 192.168.199.15 box
---TRANSACTION 0 0, not started, process no 14634, OS thread id 1097562432
MySQL thread id 28212, query id 1416247561 localhost root
show engine innodb status
---TRANSACTION 2 146597653, not started, process no 14634, OS thread id 1097828672
MySQL thread id 28028, query id 1416245550 192.168.199.15 skst
---TRANSACTION 2 146596927, not started, process no 14634, OS thread id 1098119488
MySQL thread id 27580, query id 1416245550 192.168.199.15 skst
---TRANSACTION 2 142726949, not started, process no 14634, OS thread id 1180014912
MySQL thread id 26261, query id 1416246087 192.168.199.15 skst
---TRANSACTION 0 0, not started, process no 14634, OS thread id 1096763712
MySQL thread id 26260, query id 1416246087 192.168.199.15 skst
---TRANSACTION 2 146596928, ACTIVE 1267 sec, process no 14634, OS thread id 1097029952 fetching rows, thread declared inside InnoDB 363
mysql tables in use 2, locked 1
31574 lock struct(s), heap size 3078128, 3333275 row lock(s)
MySQL thread id 27581, query id 1414544397 192.168.199.15 skst Copying to tmp table
select machineCode,createTime,accountIp from account_log where machineCode in (select distinct machineCode from account_log where market regexp "FirstTimeForiPhone" and machineCode is not null)
Trx read view will not see trx with id >= 2 146596929, sees < 2 146494817
解决如下:
mysql> show full processlist;
+-------+-------------+----------------------+------+---------+---------+----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-------+-------------+----------------------+------+---------+---------+----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 1 | system user | | NULL | Connect | 1907304 | Waiting for master to send event | NULL |
| 26260 | skst | 192.168.199.15:35845 | v506 | Sleep | 398 | | NULL |
| 26261 | skst | 192.168.199.15:35846 | v506 | Sleep | 398 | | NULL |
| 27580 | skst | 192.168.199.15:57148 | v506 | Sleep | 481 | | NULL |
| 27581 | skst | 192.168.199.15:57149 | v506 | Query | 1420 | Copying to tmp table | select machineCode,createTime,accountIp from account_log where machineCode in (select distinct machineCode from account_log where market regexp "FirstTimeForiPhone" and machineCode is not null) |
| 28028 | skst | 192.168.199.15:60202 | v506 | Sleep | 481 | | NULL |
| 28212 | root | localhost | NULL | Query | 0 | NULL | show full processlist |
| 28369 | box | 192.168.199.15:63407 | v506 | Sleep | 0 | | NULL |
+-------+-------------+----------------------+------+---------+---------+----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8 rows in set (0.00 sec)
mysql> kill 27581
-> ;
Query OK, 0 rows affected (0.00 sec)
mysql> show full processlist;
+-------+-------------+----------------------+------+---------+---------+----------------------------------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-------+-------------+----------------------+------+---------+---------+----------------------------------+-----------------------+
| 1 | system user | | NULL | Connect | 1907317 | Waiting for master to send event | NULL |
| 26260 | skst | 192.168.199.15:35845 | v506 | Sleep | 411 | | NULL |
| 26261 | skst | 192.168.199.15:35846 | v506 | Sleep | 411 | | NULL |
| 27580 | skst | 192.168.199.15:57148 | v506 | Sleep | 494 | | NULL |
| 28028 | skst | 192.168.199.15:60202 | v506 | Sleep | 494 | | NULL |
| 28212 | root | localhost | NULL | Query | 0 | NULL | show full processlist |
| 28376 | box | 192.168.199.15:63414 | v506 | Sleep | 0 | | NULL |
+-------+-------------+----------------------+------+---------+---------+----------------------------------+-----------------------+
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.199.50
Master_User: replication
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000381
Read_Master_Log_Pos: 643933828
Relay_Log_File: mysql-zhaowei-bj-199-52-relay-bin.000577
Relay_Log_Pos: 643933973
Relay_Master_Log_File: mysql-bin.000381
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 643933828
Relay_Log_Space: 643934189
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
1 row in set (0.01 sec)
问题解决!~
本文出自 “网络空间” 博客,请务必保留此出处http://netspace.blog.51cto.com/1069106/1603849
数据库 1205 Error 'Lock wait timeout exceeded; try restarting transaction' on query