mysql 数据库中的一个表被锁定。 请让我知道我应该遵循的步骤来查找其背后的根本原因,即谁在何时锁定表?
谢谢, 萨钦
最佳答案
首先,检查表是否已锁定 - 它是否出现在结果中:
mysql> SHOW OPEN TABLES WHERE in_use;
如果当前已锁定,请从命令行运行:
# mysqladmin debug -u <user> -p
( <user>
最有可能是 root
,具体取决于您的设置)
现在检查您的错误日志(默认情况下位于数据目录内,通过检查 my.cnf
文件找到该位置)。您应该找到执行锁定的进程的详细信息。
输出的相关位如下所示:
Current locks:
lock: 0x7f759da38e90: write
write : 0x7f759da97a00 (54:12);
从数据库内(使用具有 SUPER
权限的用户)运行 SHOW PROCESSLIST
找出日志所指的 session 。在上面的示例中,您需要进程 ID 54
(由 (54:12)
标识)。
关于mysql - 我应该遵循哪些步骤来查找 mysql 中表被锁定的根本原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5660197/