mysql表死锁Waiting for table metadata lock处理

mysql表死锁Waiting for table metadata lock处理

  • 一、查看mysql执行状态
  • 二、查看当前未提交事务的mysql执行
  • 三、处理死锁(删除未提交的mysql 执行)

一、查看mysql执行状态

show processlist

查看展示出来的state字段,是否有 Waiting for table metadata lock,存在则标识该表存在未完成的事务,不能执行DDL语句。

二、查看当前未提交事务的mysql执行

select trx_state, trx_started, trx_mysql_thread_id, trx_query from information_schema.innodb_trx
  • trx_state: 事务状态,一般为RUNNING
  • trx_started: 事务执行的起始时间,若时间较长,则要分析该事务是否合理
  • trx_mysql_thread_id: MySQL的线程ID,用于kill
  • trx_query: 事务中的sql

三、处理死锁(删除未提交的mysql 执行)

kill trx_mysql_thread_id;
  • 清除第二步查出来的trx_mysql_thread_id 值代表的执行;
  • 清除第一步查出来的 state = Waiting for table metadata lock执行线程 使用id (kill id)

你可能感兴趣的:(mysql,事务,数据库,mysql,数据库)