问题描述
|
mysql DB中的表之一被锁定。
请让我知道我应该遵循的步骤以找到其背后的根本原因,即谁在锁定表以及何时锁定?
谢谢,
萨钦
解决方法
首先,检查表是否已锁定-它是否出现在以下结果中:
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
找出日志所指的会话。在上面的示例中,您需要进程ID54
(由(54:12)
标识)。