环境
系统:CentOS release 6.10
mysql版本:5.6.29
数据库因断电后,重启数据库后,打开表报错
报错信息:ERROR 1008 (HY000): Can't drop table 'WFF_FFW'; database doesn't exist
命令行输入.png
navicat查看表数据.png
判断:表损坏,但数据还在,恢复数据可以按以下方法解决:
0).先备份下data目录下你所需要的数据库中表的信息。例如:数据库:WFF 表:WFF_FFW,数据库目录:/usr/local/mysql/data/WFF/
mkdir /opt/backup/
cp -a /usr/local/mysql/data/WFF/* /opt/backup/
cd /usr/local/mysql/data/WFF/
有两个文件:WFF_FFW.frm WFF_FFW.ibd
1).删除表(如果存在).
DROP TABLE IF EXISTS
WFF_FFW
; #此时,data/WFF库的目录下WFF_FFW.frm就不存在了;
2).删除表的ibd文件
rm -rf WFF_FFW.ibd
3).执行sql文件(新建表结构,不含数据)
CREATE TABLE
WFF_FFW
(
level
tinyint(1) NOT NULL,
position
varchar(255) NOT NULL,
sort
tinyint(3) unsigned DEFAULT '50' COMMENT '排序',
)
4).丢弃现有的表空间
ALTER TABLE WFF_FFW DISCARD TABLESPACE; #Discard的意思就是从数据库detached,会删除ibd文件,保留frm文件。
5).将之前备份中的文件覆盖至新的数据库中的表;
\cp /opt/backup/WFF_FFW.* /usr/local/mysql/data/WFF/
6).对覆盖后的表添加mysql用户赋权限
chown -R mysql.mysql WFF_FFW.*
7). 导入数据
ALTER TABLE WFF_FFW IMPORT TABLESPACE;
8)查看表数据;
select * from WFF_FFW;
随笔1:
1.cp /usr/local/mysql/data/WFF/WFF_FFW.* /opt/backup/
- DROP TABLE IF EXISTS
WFF_FFW
;- rm -rf WFF_FFW.ibd
- CREATE TABLE
WFF_FFW
(
area_id
varchar(10) NOT NULL COMMENT 'ID',
lng
varchar(20) DEFAULT NULL,
lat
varchar(20) DEFAULT NULL,
level
tinyint(1) NOT NULL,
position
varchar(255) NOT NULL,
sort
tinyint(3) unsigned DEFAULT '50' COMMENT '排序',
PRIMARY KEY (area_id
)
)';- ALTER TABLE WFF_FFW DISCARD TABLESPACE;
- \cp /opt/backup/WFF/WFF_FFW.* /usr/local/mysql/data/WFF/
- chown -R mysql.mysql WFF_FFW.*
- ALTER TABLE WFF_FFW IMPORT TABLESPACE;
9.select * from WFF_FFW;
随笔2
mysql -uroot -p --skip-column-names -e "use WFF;show tables" > /opt/Script/tables #获取表名至tables文件中
#!/bin/bash
#本脚本只包含随笔1中5678的实现,1234目前还需要手动
for tablename in `cat /opt/Script/tables`;do
mysql -uroot -proot -e "use WFF;ALTER TABLE $tablename DISCARD TABLESPACE;"
\cp /root/data/WFF/$tablename.* /opt/App/mysql/data/WFF/
chown -R mysql.mysql /opt/App/mysql/data/WFF/$tablename.*
mysql -uroot -proot -e "use WFF;ALTER TABLE $tablename IMPORT TABLESPACE;"
done
以上只是个人想法,如有更好的实现方式,可以留言分享下喽^v^
参考地址:http://www.ywnds.com/?p=9354
网友评论