mysql DB中的一个表被锁定。 请告诉我我应该遵循的步骤,找出其背后的原因,即谁锁定桌子以及何时?
谢谢, 萨钦
答案 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)
标识)。