日期:2014-05-16  浏览次数:20644 次

服务器上的数据库有个表被锁了。

SHOW processlist查询到有个表被锁了。无法打开也无法删除。求解决办法
由于是放在服务器上面的,我不能重启MYSQL服务

------解决方案--------------------
在MYSQL命令中使用 KILL 杀进程
------解决方案--------------------
你这里有 alter table dm.emailerrlog, drop table emailerrlog的操作,对于DDL,MySQL目前不得不锁表,以防别的线程读到错误的数据。从线程来看,所有的线程都在等待alter table 完成,所以你只能等待alter table完成,或者如果你有权限的话,kill 7436来中止alter table的执行。

建议你在业务高峰期不要做DDL操作,这样会让该表的更新都被堵塞住。
------解决方案--------------------
楼上说的非常在理。业务高峰期不要执行这类调整表结构甚至dump数据的操作。
就比如,北京西站本来有四个站口可以进人,高峰时段,你非要强行关掉其中一个进站口,受影响肯定非常大。
------解决方案--------------------
kill杀掉进程。