因对数据库不当操作导致能看见表,但是不能查看操作表。
报错编号: 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;"
这样数据就可以恢复了。