mysql损坏打不开_mysql 断电导致表打不开解决方案

企业案例

在没有备份数据的情况下,突然断电导致表损坏,打不开数据库。

1.模拟断电表损坏

#1.打包某个独立表空间

[root@db01 /usr/local/mysql/data]# tar zcf world.tar.gz world

#2.将打包的文件传输到一台数据库

[root@db01 /usr/local/mysql/data]# scp world.tar.gz 172.16.1.52:/tmp/

#3.将新数据库的文件解压到新数据库的数据目录下

[root@db02 ~]# tar xf /tmp/world.tar.gz -C /service/mysql/data/

#4.新数据库查看数据

mysql> use world;

mysql> show tables;

+-----------------+

| Tables_in_world |

+-----------------+

| city |

| country |

| countrylanguage |

| jixiao |

+-----------------+

4 rows in set (0.00 sec)

#5.操作表数据

mysql> select * from city;

ERROR 1146 (42S02): Table 'world.city' doesn't exist

2.解决数据库表损坏的问题

#1.找一台新的数据库重新建新表

CREATE TABLE `city_new` (

`ID` int(11) NOT NULL AUTO_INCREMENT,

`Name` char(35) NOT NULL DEFAULT '',

`CountryCode` char(3) NOT NULL DEFAULT '',

`District` char(20) NOT NULL DEFAULT '',

`Population` int(11) NOT NULL DEFAULT '0',

PRIMARY KEY (`ID`),

KEY `CountryCode` (`CountryCode`),

KEY `index_key` (`Name`),

KEY `idx_key` (`ID`),

KEY `population_key` (`Population`),

KEY `District_key` (`District`)

) ENGINE=InnoDB AUTO_INCREMENT=4080 DEFAULT CHARSET=latin1;

#2.数据库操作city_new清除自己的表空间

mysql> alter table city_new discard tablespace;

#3.物理拷贝city的数据文件

[root@db02 /service/mysql/data/world]# cp city.ibd city_new.ibd

[root@db02 /service/mysql/data/world]# chown -R mysql.mysql city_new.ibd

#4.city_new读取自己的表空间数据

mysql> alter table city_new import tablespace;

#5.数据查询

mysql> select * from city_new;

#6.删除损坏的表

mysql> drop table city;

ERROR 1051 (42S02): Unknown table 'world.city'#只是说不认识,没说不能删除

[root@db02 /service/mysql/data/world]# rm city.ibd#物理删除表数据

#7.修改表名

mysql> alter table city_new rename city;

3.恢复业务

1.开发修改数据库连接信息

2.将数据重新导出再导入旧机器

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值