执行mysql语句卡死

问题:执行ALTER TABLE table1 ADD COLUMN name text(10) NOT NULL;时,sql语句卡住不动,如下图:

        

思路:

       1、通过mysql日志查找原因,查log语句:select * from INFORMATION_SCHEMA.processlist where COMMAND = "Query"\G

        

       2、通过log可以看到是数据表被锁定,锁定的原因是有其他项目正连接着这个数据库,所以要更改表首先要断掉其他链接。

解决方法:

       先执行下面语句关闭指定表的连接,然后再执行上面修改表的sql语句即可,且不影响其他项目对mysql的操作。

mysql -uroot -p123456 -e 'show processlist' | awk '/table_name/{ print $1}' | xargs -i  mysql -uroot -p123456 -e 'kill {}'

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值