Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要在不重新启动数据库的情况下清除MySQL InnoDB锁_Mysql_Locking_Innodb - Fatal编程技术网

需要在不重新启动数据库的情况下清除MySQL InnoDB锁

需要在不重新启动数据库的情况下清除MySQL InnoDB锁,mysql,locking,innodb,Mysql,Locking,Innodb,我有一个MySQL InnoDB锁,它阻止用户登录。我现在不关心这个锁的原因-我只需要在不重新启动数据库的情况下清除锁。终止查询进程对我来说没有任何作用。有什么建议吗?谢谢。以下是我如何解决问题的: mysql> show engine innodb status\G *************************** 1. row *************************** Type: InnoDB Name: Status: ================

我有一个MySQL InnoDB锁,它阻止用户登录。我现在不关心这个锁的原因-我只需要在不重新启动数据库的情况下清除锁。终止查询进程对我来说没有任何作用。有什么建议吗?谢谢。

以下是我如何解决问题的:

mysql> show engine innodb status\G
*************************** 1. row ***************************
  Type: InnoDB
  Name: 
Status: 
=====================================
120710 18:05:37 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 37 seconds
----------
SEMAPHORES
----------
OS WAIT ARRAY INFO: reservation count 208374, signal count 196902
Mutex spin waits 0, rounds 39211638, OS waits 80663
RW-shared spins 588505, OS waits 68505; RW-excl spins 3204502, OS waits 53586
------------
TRANSACTIONS
------------
Trx id counter 1 3626791829
Purge done for trx's n:o < 1 3625948819 undo n:o < 0 0
History list length 6754
LIST OF TRANSACTIONS FOR EACH SESSION:
...
---TRANSACTION 1 3625948818, ACTIVE 2892 sec, process no 1981, OS thread id 140020625811200
2 lock struct(s), heap size 368, 1 row lock(s), undo log entries 1

>>>>> MySQL thread id 14982, query id 232584561 localhost dbuser

Trx read view will not see trx with id >= 1 3625948819, sees < 1 3625948817

mysql> kill 14982;
Query OK, 0 rows affected (0.00 sec)
mysql>显示引擎innodb状态\G
*************************** 1. 划船***************************
类型:InnoDB
姓名:
地位:
=====================================
120710 18:05:37 INNODB监视器输出
=====================================
从最后37秒计算得出的每秒平均值
----------
信号量
----------
OS等待阵列信息:保留计数208374,信号计数196902
互斥旋转等待0,轮数39211638,操作系统等待80663
RW共享自旋588505,OS等待68505;RW excl旋转3204502,操作系统等待53586
------------
交易
------------
Trx id计数器1 3626791829
清除trx的n:o<1 3625948819撤消n:o<0
历史记录列表长度6754
每个会话的事务列表:
...
---事务1 3625948818,活动2892秒,进程号1981,操作系统线程id 140020625811200
2个锁结构,堆大小368,1个行锁,撤消日志条目1
>>>>>MySQL线程id 14982,查询id 232584561 localhost dbuser
Trx读取视图将不会看到id大于等于1 3625948819的Trx,而会看到<1 3625948817
mysql>kill14982;
查询正常,0行受影响(0.00秒)
请注意,带有>>>>的行是定义MySQL线程ID的地方-应该终止的是该线程


也请参阅帖子-非常有用。

我和MyIsam有同样的问题,我可以通过修复表来解决。我不知道这会有什么帮助,但这是一个StartHanks,但不幸的是修复表没有用于InnoDB。使用CHECK TABLE并告诉我们输出是什么。CHECK TABLE返回OK状态。您将希望在MySQL 5.5及更高版本中使用
SHOW ENGINE InnoDB status\G
(以前,
引擎
是可选的)