【问题标题】:How can I see global locks in mysql (innodb)?如何在 mysql (innodb) 中查看全局锁?
【发布时间】:2012-03-19 11:43:00
【问题描述】:

如果理解正确,运行FLUSH TABLES WITH READ LOCK 会获得全局读锁。

我可以在 mysql 客户端中运行任何命令来显示当前已获取锁吗?

【问题讨论】:

  • 我试过show full processlist。它可以显示一个“更新”查询正在等待锁被释放,但它不显示谁持有锁。
  • 确实如此,the FIRST command before all the write (insert,update,delete) is the owner of the lock
  • 抱歉,锁不包含在进程列表中;
  • @rkosegi 该线程正在讨论表锁。我的问题是关于全局锁定。

标签: mysql locking innodb


【解决方案1】:

试试这个:

SHOW ENGINE INNODB STATUS;

它将显示锁的所有者和服务员(以及许多与 innodb 相关的其他内容)

http://dev.mysql.com/doc/refman/5.0/en/innodb-monitors.html

http://www.xaprb.com/blog/2006/07/31/how-to-analyze-innodb-mysql-locks/

【讨论】:

  • 我对这个命令很熟悉,但它不会显示flush tables with read lock 获取的全局锁,除非我错过了。
  • 您至少需要一个 PROCESS 权限才能执行此操作。在没有任何 PROCESS 权限的情况下,我有什么办法可以做到这一点?
【解决方案2】:

这不是全局锁。一旦你退出会话,它就会释放它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多