mysql怎么知道哪个表被谁,或者IP ,进程锁着?

解决方案 »

  1.   

    查看日志或者看
    mysql> show status like "%Com_unlock_tables%";
    +-------------------+-------+
    | Variable_name     | Value |
    +-------------------+-------+
    | Com_unlock_tables | 1     |
    +-------------------+-------+
    1 row in set (0.00 sec)
      

  2.   

    你们给的都没有真实的用处想知道哪个Ip所,做什么SQL锁的?
      

  3.   

    show processlist;结果里有ip也有sql啊
      

  4.   

    如果你用的innodb引擎,你也可以使用show innodb status查看
      

  5.   

    明白了楼主的意思楼主的意思是有多个用户同时访问服务器,现在服务器向知道谁锁的表?mysql> show processlist;
    +----+-------+----------------+------+---------+------+---------------------------------+--------------------+
    | Id | User  | Host           | db   | Command | Time | State                           | Info               |
    +----+-------+----------------+------+---------+------+---------------------------------+--------------------+
    |  2 | root  | localhost:2969 | test | Sleep   | 2799 |                                 | NULL               |
    |  3 | root  | localhost:2970 | NULL | Sleep   | 2807 |                                 | NULL               |
    |  6 | root  | localhost:3277 | NULL | Sleep   |  815 |                                 | NULL               |
    |  7 | root  | localhost:3341 | test | Query   |   25 | Waiting for release of readlock | delete from t      |
    |  8 | root  | localhost:3342 | test | Query   |    0 | NULL                            | show processlist   |
    |  9 | model | localhost:3425 | NULL | Query   |   12 | Waiting for release of readlock | delete from test.t |
    +----+-------+----------------+------+---------+------+---------------------------------+--------------------+
    6 rows in set (0.00 sec)
    这个只能看状态究竟哪个用户所表了
    你看日志
    general-log
    那个用户用lock了就是他所表了