mysql InnoDB表結(jié)構(gòu)的恢復(fù)方法是怎樣的呢?下面就為您詳細(xì)介紹MySQL InnoDB表結(jié)構(gòu)的恢復(fù)步驟,如果您對此方面感興趣的話,不妨一看。 MySQL InnoDB表結(jié)構(gòu)的恢復(fù): 假定:MYSQL數(shù)據(jù)庫已經(jīng)崩潰,目前只有對應(yīng)表的frm文件,大家都知道,frm文件無法通過文本編輯
MySQL InnoDB表結(jié)構(gòu)的恢復(fù)方法是怎樣的呢?下面就為您詳細(xì)介紹MySQL InnoDB表結(jié)構(gòu)的恢復(fù)步驟,如果您對此方面感興趣的話,不妨一看。
MySQL InnoDB表結(jié)構(gòu)的恢復(fù):
假定:MYSQL數(shù)據(jù)庫已經(jīng)崩潰,目前只有對應(yīng)表的frm文件,大家都知道,frm文件無法通過文本編輯器查看,因為如果不恢復(fù),基本上來說對我們沒什么用。這里我們?yōu)榱藴y試,假定該文件為test_innodb.frm.
該表創(chuàng)建腳本如下:
mysql> create table test_innodb?
??? -> (A int(11) default NULL,?
??? -> B varchar(30) default NULL,?
??? -> C date default NULL) engine=innodb;?
Query OK, 0 rows affected (0.05 sec)?
恢復(fù)方法介紹(過程):
1. 在新的正常工作的MYSQL環(huán)境下建立一個數(shù)據(jù)庫,比如aa.
2. 在aa數(shù)據(jù)庫下建立同名的數(shù)據(jù)表test_innodb,表結(jié)構(gòu)隨意,這里只有一個id字段,操作過程片段如下:
mysql> create table test_innodb (id bigint not null)engine=InnoDB;?
Query OK, 0 rows affected (0.09 sec)?
mysql> show tables;?
+————–+?
| Tables_in_aa |?
+————–+?
| test_innodb |?
+————–+?
2 rows in set (0.00 sec)?
mysql> desc test_innodb;?
+——-+————+——+—–+———+——-+?
| Field | Type?????? | Null | Key | Default | Extra |?
+——-+————+——+—–+———+——-+?
| id??? | bigint(20) | NO?? |???? | NULL??? |?????? |?
+——-+————+——+—–+———+——-+?
1 row in set (0.00 sec)?
3.停止mysql服務(wù)器,將系統(tǒng)崩潰后留下的test_innodb.frm文件拷貝到新的正常數(shù)據(jù)庫的數(shù)據(jù)目錄aa下,覆蓋掉下邊同名的frm文件:
4.重新啟動MYSQL服務(wù)。
5.測試下是否恢復(fù)成功,進入aa數(shù)據(jù)庫,用desc命令測試下:
mysql> desc test_innodb;?
+——-+————-+——+—–+———+——-+?
| Field | Type??????? | Null | Key | Default | Extra |?
+——-+————-+——+—–+———+——-+?
| A???? | int(11)???? | YES |???? | NULL??? |?????? |?
| B???? | varchar(30) | YES |???? | NULL??? |?????? |?
| C???? | date??????? | YES |???? | NULL??? |?????? |?
+——-+————-+——+—–+———+——-+?
3 rows in set (0.01 sec)?
OK,發(fā)現(xiàn)表結(jié)構(gòu)已經(jīng)恢復(fù)過來了。