问题描述:
一个超级大的数据表,加索引几周完不成,还导致整个服务器都很卡。
kill掉mysql进程之后,导致数据回滚,更卡了。
解决思路
- 只读模式打开数据库,备份数据表
- 删除数据表及临时表
- 重启数据库
- 恢复数据表
# 1. 备份数据表
编辑文件/etc/mysql/my.cnf
设置innodb_force_recovery=6 (极端情况下才设置6,否则3就够了)
此时应该能直接打开数据库了,备份好数据
# 2. 删除数据表及临时表
设置innodb_force_recovery=3
重启数据库,删除掉数据表
进数据库文件目录,把#开头的那个临时表也删了(注意千万别删错了)
# 3. 重启数据库
注释掉innodb_force_recovery参数,重启数据库。
此时已经一切正常啦!
# 4. 恢复数据表