lost

Mysql ibdata 丢失或损坏如何通过frm&ibd 恢复数据

别说谁变了你拦得住时间么 提交于 2020-01-07 14:50:43
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> mysql存储在磁盘中,各种天灾人祸都会导致数据丢失。大公司的时候我们常常需要做好数据冷热备,对于小公司来说要做好所有数据备份需要支出大量的成本,很多公司也是不现实的。万一还没有做好备份,数据被误删除了,或者ibdata损坏了怎么办呢?别担心,只要有部分的frm、ibd存在就可以恢复部分数据。 注意: 一、这个是对innodb的数据恢复。myisam不需要这么麻烦,只要数据文件存在直接复制过去就可以。 二、大家的mysql数据库必须是按表存放数据的,默认不是,但是大家生产肯定是按分表设置的吧,如果不是,不好意思,这个方法不能恢复你的数据。my.ini的设置为 innodb_file_per_table = 1。 参考 http://blog.chinaunix.net/uid-24111901-id-2627876.html 1、找回表结构,如果表结构没有丢失直接到下一步 a、先创建一个数据库,这个数据库必须是没有表和任何操作的。 b、创建一个表结构,和要恢复的表名是一样的。表里的字段无所谓。一定要是innodb引擎的。CREATE TABLE `weibo_qq0`( `weiboid` bigint(20)) ENGINE=InnoDB DEFAULT CHARSET=utf8; c、关闭mysql,