数据库出现Waiting for table metadata lock

博主分享了数据库数据导入长时间延迟的解决经历,通过`showprocesslist`和`innodb_trx`查询,发现一个RUNNING状态的事务导致卡死。最终通过kill命令终止未完成的查询,恢复了数据库正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库导入数据卡死,本来半个小时能传完的数据卡了一早上,使用命令查看原因

show processlist
172731 | hcm             | localhost          | hcm_core    | Query   |      22 | Waiting for table metadata lock | DROP TABLE IF EXISTS `department_history`

发现一个地方让卡死,但是kill掉后数据恢复直接停止,再排查使用语句

select trx_state, trx_started, trx_mysql_thread_id, trx_query from information_schema.innodb_trx \G
*************************** 1. row ***************************
          trx_state: RUNNING
        trx_started: 2021-09-07 09:38:03
trx_mysql_thread_id: 172072
          trx_query: NULL
1 row in set (0.00 sec)

终于查到了一条早上执行的语句,现在还没执行完毕,kill掉这个id后数据库恢复终于正常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值