1,查看进程
使用mysql命令: show processlist;
如下所示:
mysql> show processlist;
+------+-----------------+----------------------+-------------+---------+---------+------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+------+-----------------+----------------------+-------------+---------+---------+------------------------+------------------+
| 4 | event_scheduler | localhost | NULL | Daemon | 2322336 | Waiting on empty queue | NULL |
| 4319 | fixass_dev | localhost:60178 | fixass_dev | Sleep | 0 | | NULL |
| 4421 | fixass_dev2 | 111.84.70.187:31191 | fixass_dev2 | Sleep | 66 | | NULL |
| 4422 | root | localhost | NULL | Query | 0 | starting | show processlist |
+------+-----------------+----------------------+-------------+---------+---------+------------------------+------------------+
37 rows in set (0.00 sec)
如果State 这一列出现如下提示:
Waiting for table metadata lock
就使用kill命令:kill Id;
如: kill 4422; 表示杀死id为4422的进程。
2,如果仍然出现锁表现象
就查询如下sql:
select * from information_schema.innodb_trx;
找到对应的进程ID。再使用kill命令。