环境版本:
MySQL版本 5.7.7 pod级mysql主从,误删除存储引擎为innodb的数据文件导致表消失,同名表无法创建,但是表空间存在该名称表;
create table tablename;
报错:
ERROR:Tablespace tablename exists.
desc tablename;
报错:
ERROR:Table tablename doesnt exists
2.1 修改数据库my.cnf配置;
修改my.cnf配置,并保存 innodb_force_recovery=2 防止数据写入,更新,删除操作 重启数据库后,重新创建表
未删除数据库之前的数据表
备份数据库所有表或者只备份表结构,这里笔者只备份表结构
mysqldump -uroot -pxxx -d dbname >dbname.sql
drop database dbname;
报错:
Error dropping database (can not rmdir ‘./dbname‘,errno: 39)
解决方法:
在数据库的物理目录中(mysql的data目录),进入XXXXX数据库目录,查看是否有文件存在,若存在,则清除 cd dbname; rm -rf tablename 或者 mv tablename /home/tmp/ 然后再删除数据库 > drop database dbname; Query ok,
mysql -uroot -pxxxx dbname <dbname.sql
create table tablename;
报错:
Got error 168 from storage engine;
解决方法:
查看日志报错:
修改my.cnf配置,并保存 innodb_force_recovery=0 重启数据库后,重新创建表
检查数据库表文件是否创建;
误删数据文件.ibd,.frm文件,导致无法创建表,记录一次恢复数据表操作
原文:https://www.cnblogs.com/supery007/p/15151400.html