我应该遵循哪些步骤来查找表被锁定在mysql中的根本原因?

时间:2011-04-14 07:58:00

标签: mysql

mysql DB中的一个表被锁定。 请告诉我我应该遵循的步骤,找出其背后的原因,即谁锁定桌子以及何时?

谢谢, 萨钦

1 个答案:

答案 0 :(得分:1)

首先,检查表是否已锁定 - 是否显示在以下结果中:

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以查找日志引用的会话。在上面的示例中,您需要流程ID 54(由(54:12)标识)。