您现在的位置是:首页 > 记一次MySQL中Waiting for table metadata lock的解决方法

记一次MySQL中Waiting for table metadata lock的解决方法

默认 2019-05-01 01:34 831人围观 来源:原创
简介一次在(ThinkPHP)项目中用到了事物,但是post数据时奇怪的问题出现了,一直无法提交请求,像卡住了,怀疑是mysql的原因,就尝试重启了几次还是不行,突然发现有些表一访问就卡死,试了无数方法还是不行,

一次在(ThinkPHP)项目中用到了事物,但是post数据时奇怪的问题出现了,一直无法提交请求,像卡住了,怀疑是mysql的原因,就尝试重启了几次还是不行,突然发现有些表一访问就卡死,试了无数方法还是不行,一度怀疑mysql报废了需要卸载重装,不死心,搜了搜终于发现一篇帖子讲如何查看mysql错误,抱着试一试的心态mysql -uroot -p登录,然后执行show processlist; 发现很多卡死的进程,同时报错最多的是Waiting for table metadata lock,问题看来在这里,kill xxx;用kill杀掉那些进程,mysql各个表的访问恢复正常,但是一访问之前的网站方法就又触发这个问题。于是百度Waiting for table metadata lock终于找到原因,在执行mysql事务时,如果有没有commit的事务,然后又执行了lock/alter等命令时,会导致以上问题的发生,而且让你无迹可循,不知道的还以为是网络问题呢,我也怀疑过特地换了好几个网络。。。

文章评论