1,解决蚌埠住了
在使用navicat数据库的时候,操作数据库的一个表,修改表的字段然后保存,发现一直在保存中。尝试删除表,也一直在删除中,无法出结果。在数据量不大的情况下,且网络正常,这种一直在执行中的情况,应该是表锁死了。
查看表是否锁死情况,打开一个查询,输入:SHOW PROCESSLIST;
State字段为Waiting for table metadata lock,等待表元数据锁。
若被锁住了,可以使用KILL命令,KILL后面是Id,即SHOW PROCESSLIST结果第一列的值。
KILL 43043887;
注意:在删除进程前请确认user及db是自己的,不要误删了别人的。
2,修改表
是因为有长链接占了mysql的元数据锁,在事务没有完成之前,锁不会释放alter table获取不到metadata的独占锁。在表information_schema.innodb_trx中查看数据。
trx_mysql_thread_id这个id的进程。杀掉进程再去修改即可。
KILL 进程id