mysql表无法修改,执行命令以后一直卡住问题

今天遇到个问题,要修改一个字段的数据类型,但是执行完 ALTER TABLE c2c_acceptant_info MODIFY email CHAR(50) NOT NULL;命令后一直卡住无法执行,ctrl+c中断后报error1317错误,终端窗口关了,忘记报错截图了。

 

首先执行:

show full processlist; 

列出当前的操作process,看到了很多waiting的process,说明已经有卡住的proces了。

show processlist 是显示用户正在运行的线程,需要注意的是,除了 root 用户能看到所有正在运行的线程外,其他用户都只能看到自己正在运行的线程,看不到其它用户正在运行的线程。除非单独给这个用户赋予了PROCESS 权限。

 

查看正在执行的线程,并按 Time 逆排序

select * from information_schema.processlist where Command != 'Sleep' order by Time desc;

 

找出所有执行时间超过 5 分钟的线程,拼凑出 kill 语句,方便后面查杀

select concat('kill ', id, ';') from information_schema.processlist where Command != 'Sleep' and Time > 300 order by Time desc;


我是没有使用kill杀进程,最直接有效的方法,重启mysql,就可以正常操作了。

kill processid。杀死进程,如:kill 10141,10141表示上面查询得到的id;

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值