程序里有些表加锁,也不知道是那个线程做的wrie锁。
(只有该线程才能进行update insert ,否则其他线程只能等待)现在我想做到以下几点:
1 如果用工具或者shell来知道是那个进程产生了锁  (linux +mysql)
2 如何去掉这个锁???

解决方案 »

  1.   

    我在navcat开一个查询窗口first
    lock tables a write  .  再另外开一个窗口执行 select * from a这发生阻塞
    现在只有窗口first 再执行unlock tables 才能解开锁 在其他窗口执行unlock tables 不能解开锁想知道在这种情况如何才能解开锁??? 
      

  2.   

    不知道show processlist能否查出来,如果查出来,把它kill掉
      

  3.   

    这个我知道的 mysql> show processlist;
    +----+----------+----------------+------+---------+------+--------+------------------+
    | Id | User     | Host           | db   | Command | Time | State  | Info             |
    +----+----------+----------------+------+---------+------+--------+------------------+
    | 23 | root     | localhost      | aa   | Sleep   | 1073 |        | NULL             |
    | 29 | root     | localhost      | aa   | Sleep   |  984 |        | NULL             |
    | 40 | root     | localhost      | NULL | Sleep   | 2536 |        | NULL             |
    | 46 | betbrain | 10.0.4.1:1175 | aa   | Sleep   |    6 |        | NULL             |
    | 53 | root     | localhost      | aa   | Sleep   |  671 |        | NULL             |
    | 64 | my| 10.0.4.1:1224 | aa   | Sleep   |   80 |        | NULL             |
    | 68 | my| 10.0.4.1:1229 | aa   | Query   |   35 | Locked | select * from a  |
    | 71 | my| 10.0.4.1:1232 | aa   | Query   |    0 | NULL   | show processlist |
    +----+----------+----------------+------+---------+------+--------+------------------+
    8 rows in set这个方法不能解开根本问题的。  只能解开当时的锁。必须把工具开的窗口关闭
    或者session mysql的链接关闭就ok 了 。