数据库 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)

问题解决!~

数据库 1205 Error 'Lock wait timeout exceeded; try restarting transaction' on query

时间: 2024-12-11 11:59:38

数据库 1205 Error 'Lock wait timeout exceeded; try restarting transaction' on query的相关文章

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

问题描述: 研发突然找我,遇到了mysql的 ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction,具体报错如下: org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158) Caused by: java.io .IOException: java.sql.SQLException: Lock wait timeout exceeded;

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction解决

一.问题描述: 同事反馈线上一个表有其中一条数据无法删除,其他都正常,我拿到删数据的sql,尝试执行,报错如下: mysql> delete from facebook_posts where id = 7048962; ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction 二.问题处理 从报错信息看,应该是关于这条数据有事物未提交,锁等待超时了,下面我们就开始验证并解决问题 1.在sql执行期间,通

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction解决办法

一.问题描述: 同事反馈线上一个表有其中一条数据无法删除,其他都正常,我拿到删数据的sql,尝试执行,报错如下: mysql> delete from facebook_posts where id = 7048962; ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction 二.问题处理 从报错信息看,应该是关于这条数据有事物未提交,锁等待超时了,下面我们就开始验证并解决问题 1.在sql执行期间,通

InternalError: (pymysql.err.InternalError) (1205, u&#39;Lock wait timeout exceeded; try restarting transaction&#39;)

在mysql innodb中使用事务,如果插入或者更新出错,一定要主动显式地执行rollback,否则可能产生不必要的锁而锁住其他的操作 我们在使用数据库的时候,可以使用contextlib,这样异常的时候自动回滚,而且最后都会执行关闭操作 from contextlib import contextmanager engine = create_engine(EREBUS_DB_CONNECT_STRING, echo=True, pool_size=150, max_overflow=50,

执行 update操作的时候有报错 ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

mysql> show full processlist; #查看问题的线程!!!! 找到异常进程的ID 然后kill 掉: mysql> kill xxxxxxx; #xxxxxx是ID号 然后再次执行update执作,问题解决!!

工作,忘记关闭数据库连接导致数据被锁住,解决这种( ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction)

mysql: 先show full processlist;查看sleep的id然后select * from information_schema.innodb_trx;找到记录的trx_mysql_thread_id与前一张表比对最后杀死kill 2542 注意:2542=id=trx_mysql_thread_id

mysql执行insert等语句报1205 Lock wait timeout exceeded try restarting transaction

mysql执行insert等语句是报如下错误: 1205 Lock wait timeout exceeded try restarting transaction 解决办法如下: 方法一:查看当前线程,是否有存在正在执行的你相关的语句,将其KILL  show processlist;  kill pid 方法二(方法一不行再执行):重启mysql数据库  service mysqld restart 注意:重启mysql会将在执行的线程全部kill

mysql死锁,等待资源,事务锁,Lock wait timeout exceeded; try restarting transaction解决

前面已经了解了InnoDB关于在出现锁等待的时候,会根据参数innodb_lock_wait_timeout的配置,判断是否需要进行timeout的操作,本文档介绍在出现锁等待时候的查看及分析处理: 在InnoDB Plugin之前,一般通过show full processlist(很难发现被锁的行记录问题所在)和show engine innodb status命令查看当前的数据库请求,然后再判断当前事务中锁的情况.随着mysql的发展,已经提供更加便捷的方法来监控数据库中的锁等待现象了.

mysql异常Lock wait timeout exceeded; try restarting transaction

mysql中使用update语句更新数据报错: Lock wait timeout exceeded; try restarting transaction. 这是因为你要更新的表的锁在其他线程手里,如果没有意外的话,很可能是在事务线程中持有该锁,办法就是杀掉这条线程. 用   show full processlist 查询当前数据库所有线程 用    SELECT * FROM information_schema.INNODB_TRX   查询数据库事务表,其中trx_mysql_thre