MySQL查询卡死、无返回结果问题解决
现象 ①在Navicat中,修改表结构,点击保存,然后发现Navicat卡住,无法正常退出,且MySQL无数据返回。 ②在任务管理器中强制关闭了Navicat后,重复在Navicat中尝试几次,结果仍然一样。 ③在MySQL CLI中进行select查询,同样卡住。 分析 起初认为是网络问题,但是想到可能是被堵塞住了。 解决 查询MySQL中的进程:show processlist。 打开正在进行中的进程列表,发现有Waiting for table metadata lock,所以初步判定是因为某个操作被堵塞,然后后续操作无法执行,从而引起了这个问题。 从网上的资料看来,可能的原因是有未提交事物,阻塞DDL,继而阻塞所有同表的后续操作;结合自己对此数据库的操作,初步认为是在自己的小项目里面,可能存在上述情况。 查看未提交的事务:select trx_state, trx_started, trx_mysql_thread_id, trx_query from information_