mysql 库损坏恢复数据方法

本文详细介绍了如何处理因不当操作导致的数据库无法查看和操作的问题。通过设置innodb_force_recovery参数,删除日志文件,重启MySQL服务,然后进行数据导出、库的重建和表结构导入。最后,通过特定命令恢复数据,确保数据完整性和一致性。
摘要由CSDN通过智能技术生成

因对数据库不当操作导致能看见表,但是不能查看操作表。

报错编号: 1146

解决办法:

修改配置文件使库可以进行读操作,不能写

vim /etc/my.cnf

innodb_force_recovery = 6

删除库目录下的文件

rm -rf ib_logfile0
rm -rf ib_logfile1

重新启动mysql

/usr/local/mysql/bin/mysqld_safe  --defaults-file=/etc/my.cnf  --user=root

进入库查看表

只能读。
select * from 表名
能看见数据代表可以

导出表结构

mysqldump -uroot -p123456 --default-character-set=utg8 -d 库名 > book.sql

重新创建一个mysql数据库

步骤略:详细步骤查看文档

https://blog.csdn.net/CT_yi/article/details/123221741?spm=1001.2014.3001.5501

导入表结构

创建库
    create database 库名;
导入表结构
    mysql -uroot -p123456 库名 < book.sql
这时候库里面只有表,还没有数据。

执行命令

mysql -uroot -p123456 -e "use book;alter table 表名 discard tablespace;"

将损坏数据库的数据目录下结尾为ibd的文件复制到新数据库的数据目录下

cp -r /usr/local/mysql/data/book/aa.ibd /data/mysql/data/book/

    执行命令

mysql -uroot -p123456 -e "use book;alter table aa import tablespace;"

这样数据就可以恢复了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值