MySQL非正常关闭导致无法再次启动的问题以及无法启动如何将数据库表和数据进行转储详解

一、解决方式1

1.查阅官网文档,在mysql配置文件中/etc/my.cnf添加配置,成功启动

[mysqld]
innodb_force_recovery = 1

2、启动成功后使用Navicat连接数据库,由于配置了innodb_force_recovery = 1,此时数据库只能读取,不能插入、修改和删除。但是这已经足够了

3、右键要转储数据的【数据库 】------- 【转储SQL文件】 ------- 【结构和数据】
在这里插入图片描述
4、保存到自己想保存的位置
在这里插入图片描述
5、点击保存即可将数据库的各个表的结构和数据保存为SQL文件了

二、解决方式2

1.查阅官网文档,在mysql配置文件中/etc/my.cnf添加配置,成功启动

[mysqld]
innodb_force_recovery = 1

2.备份数据库

mysqldump -h172.168.2.100 -uroot -p -A > mysql_all_bak.sql
如遇报表不存在,mysqldump可以添加参数:--force ,跳过错误

3.删除数据库

drop database hxdb; 或者将数据库数据库目录 mv hxdb hxdb_bak (保险)

4.去掉参数 innodb_force_recovery

将之前设置的参数去掉后,重新启动数据库

5.导入数据

mysql -uroot -p < mysql_all_bak.sql

Warning: Using a password on the command line interface can be insecure.
ERROR 1050 (42S01) at line 25: Table '`hxdb`.`tb_info`' already exists

如果提示表已经存在,这是因为将innodb_force_recovery参数去掉后,数据库会进行回滚操作,会生成相应的ibd文件,所以需要将该文件删除掉,删除后重新导入
mysql -uroot -p < mysql_all_bak.sq
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值