MySQL kill进程后出现killed
一.问题描述
拷贝一个大表的表数据的时候,等待时间太久,就在前台通过CTRL+C的方式停掉了
通过show processlist查找到对应的进程,然后进行kill,结果kill完了,依旧在进程列表里,只是被标记为killed
二.解决方案
查看innodb的事务表,发现刚才kill的语句正在进行回滚操作。
trx_rows_modified 代表锁影响的行数,当数值为0时,锁将会释放
最好的办法就是等待innodb自己将事务进行回滚,除此之外,也可以innodb_force_recovery=3不执行事务回滚操作 启动数据库 (慎用)
INNODB_TRX表列的备注:
三.额外的一个报错
在回滚的过程中,错误日志报错了:
只能强制杀进程了
我以为强制杀进程后,启动mysql就没问题了,结果登陆不上,错误日志报错如下:
杀掉所有mysql相关的进程,然后启动mysql服务
四.启用innodb_force_recovery=3
通过第三步,我将mysql服务正常启动,但是依旧无法创建表
此时查看进程,没发现异常
然后查看innodb的事务表 innodb_trx:
连着查询了几次,trx_rows_modified的值没有发生变化,初步判断是上次mysql实例异常crash后出现了问题。
从performance_schema.data_locks中可以看到锁的都是系统的表。
修改配置文件,然后重启mysqld服务
相关:https://blog.csdn.net/u010520724/article/details/117559856
https://blog.csdn.net/m0_37827567/article/details/82979767
https://blog.csdn.net/zhang123456456/article/details/72854467
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了