欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用frm和ibd文件恢復(fù)mysql表數(shù)據(jù)的詳細(xì)過程

 更新時間:2024年04月24日 09:24:06   作者:冰箱里有燈  
總是遇到mysql服務(wù)意外斷開之后導(dǎo)致mysql服務(wù)無法正常運(yùn)行的情況,使用Navicat工具查看能夠看到里面的庫和表,但是無法獲取數(shù)據(jù)記錄,提示數(shù)據(jù)表不存在,所以本文給大家介紹了利用frm和ibd文件恢復(fù)mysql表數(shù)據(jù)的詳細(xì)過程,需要的朋友可以參考下

問題

總是遇到mysql服務(wù)意外斷開之后導(dǎo)致mysql服務(wù)無法正常運(yùn)行的情況,使用Navicat工具查看能夠看到里面的庫和表,但是無法獲取數(shù)據(jù)記錄,提示數(shù)據(jù)表不存在。

這里記錄一下用frm文件和ibd文件手動恢復(fù)數(shù)據(jù)表的過程。

思路

1、frm文件:

存儲數(shù)據(jù)表結(jié)構(gòu)定義的文件,每個表對應(yīng)一個frm文件。

其中包含:表名、列名、主鍵、字符集等數(shù)據(jù)。

可以使用命令 SHOW CREATE TABLE table_name;或者DESCRIBE table_name;查看基于frm文件的表結(jié)構(gòu)信息。

2、ibd文件:

存儲表數(shù)據(jù)和索引的文件,每個使用InnoDB存儲引擎的表,啟用了獨(dú)立標(biāo)空間時,都會有一個對應(yīng)的ibd文件。

其中包含:數(shù)據(jù)行記錄、索引等數(shù)據(jù)。

3、frm文件確認(rèn)表結(jié)構(gòu),由ibd文件恢復(fù)表數(shù)據(jù)。

解決

這里以prj_idx表為例,記錄手動處理的過程。

1、確保當(dāng)前 mysql 服務(wù)正常運(yùn)行,新建一個數(shù)據(jù)庫

create database test;

2、創(chuàng)建 prj_idx 同名表,默認(rèn)一個字段

create table `prj_idx`(`id` int);

在這里插入圖片描述

3、替換 frm 文件

 1. 斷開mysql服務(wù)
 2. 使用要恢復(fù)的prj_idx.frm文件替換新創(chuàng)建的prj_idx.frm文件
 3. 啟動mysql服務(wù)

在這里插入圖片描述

4、查詢表結(jié)構(gòu)

rem 刷新數(shù)據(jù)庫表
flush tables;
rem 查看表結(jié)構(gòu)
show create table `prj_idx`;

這時會提示錯誤:Table ‘test.prj_idx’ doesn’t exist.

在這里插入圖片描述

查看錯誤日志err文件,如果找不到錯誤日志位置,可以先查詢:

show variables like 'log_%';

在這里插入圖片描述

查看錯誤日志,找到錯誤提示

[Warning] InnoDB: table test/prj_idx contains 1 user defined columns
in InnoDB, but 16 columns in MySQL.

在這里插入圖片描述

提示里面說明了prj_idx表中實際的字段數(shù)量

5、刪除prj_idx表,重新創(chuàng)建正確數(shù)量的任意字段的prj_idx表

這里只需要數(shù)量正確即可

draop table if exists `prj_idx`;
create table `prj_idx`(`id` int,`1` int,`2` int,`3` int,`4` int,`5` int,`6` int,`7` int,`8` int,`9` int,`10` int,`11` int,`12` int,`13` int,`14` int,`15` int);

6、重新替換frm文件,并查看表結(jié)構(gòu)

 1. 斷開mysql服務(wù)
 2. 使用要恢復(fù)的prj_idx.frm文件替換新創(chuàng)建的prj_idx.frm文件
 3. 啟動mysql服務(wù)
 4. 刷新數(shù)據(jù)表
 5. 查看表結(jié)構(gòu)
flush tables;
show create table `prj_idx`;

這時就能夠查看到prj_idx的表結(jié)構(gòu)了:

在這里插入圖片描述

7、使用表空間快速遷移ibd文件

  • 丟棄表空間(刪除ibd文件):
alter table prj_idx discard tablespace;
  • 復(fù)制要恢復(fù)的prj_idx.ibd文件到對應(yīng)的路徑下
  • 導(dǎo)入表空間:
alter table prj_idx import tablespace;
  • 確認(rèn)字符集、行格式、排序順序等設(shè)置
  • 再次打開prj_idx表,里面就已經(jīng)有數(shù)據(jù)了

在這里插入圖片描述

8、myd、myi文件

  • 復(fù)制到對應(yīng)路徑下
  • 重啟mysql服務(wù)

ok,搞定!

以上就是利用frm和ibd文件恢復(fù)mysql表數(shù)據(jù)的詳細(xì)過程的詳細(xì)內(nèi)容,更多關(guān)于frm和ibd恢復(fù)mysql表數(shù)據(jù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • MySQL和Oracle的元數(shù)據(jù)抽取實例分析

    MySQL和Oracle的元數(shù)據(jù)抽取實例分析

    MySQL和Oracle雖然在架構(gòu)上有很大的不同,但是如果從某些方面比較起來,它們有些方面也是相通的,下面這篇文章主要給大家介紹了關(guān)于MySQL和Oracle元數(shù)據(jù)抽取的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • 關(guān)于Mysql8.0版本驅(qū)動getTables返回所有庫的表問題淺析

    關(guān)于Mysql8.0版本驅(qū)動getTables返回所有庫的表問題淺析

    這篇文章主要給大家介紹了關(guān)于Mysql 8.0版本驅(qū)動getTables返回所有庫的表問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • MySQL通過自定義函數(shù)實現(xiàn)遞歸查詢父級ID或者子級ID

    MySQL通過自定義函數(shù)實現(xiàn)遞歸查詢父級ID或者子級ID

    這篇文章主要介紹了MySQL通過自定義函數(shù)實現(xiàn)遞歸查詢父級ID或者子級ID,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • 解讀mysql中的null問題

    解讀mysql中的null問題

    這篇文章主要介紹了解讀mysql中的null問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 根據(jù)mysql慢日志監(jiān)控SQL語句執(zhí)行效率

    根據(jù)mysql慢日志監(jiān)控SQL語句執(zhí)行效率

    根據(jù)mysql慢日志監(jiān)控SQL語句執(zhí)行效率 啟用MySQL的log-slow-queries(慢查詢記錄)。
    2012-11-11
  • MySQL主從原理及配置詳解

    MySQL主從原理及配置詳解

    這篇文章主要為大家詳細(xì)介紹了MySQL主從原理及配置的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • windows下傻瓜式安裝mysql5.7

    windows下傻瓜式安裝mysql5.7

    本文給大家介紹的是簡單幾步輕松搞定Windows上安裝Mysql5.7,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • MySQL修改root賬號密碼的方法

    MySQL修改root賬號密碼的方法

    這篇文章介紹了兩種情況,知道root密碼的情況下修改root密碼,以及忘記了root密碼,如何對root的密碼進(jìn)行修改,需要的朋友可以參考下
    2015-07-07
  • MySQL中索引優(yōu)化distinct語句及distinct的多字段操作

    MySQL中索引優(yōu)化distinct語句及distinct的多字段操作

    這篇文章主要介紹了MySQL中索引優(yōu)化distinct語句及distinct的多字段操作方法,distinct語句去重功能的使用是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2016-01-01
  • MySQL中聯(lián)合主鍵的操作方式

    MySQL中聯(lián)合主鍵的操作方式

    MySQL聯(lián)合主鍵操作包括創(chuàng)建、新增和修改,創(chuàng)建時在表定義中使用PRIMARY KEY關(guān)鍵字指定多個字段,新增和修改時,分別使用ALTER TABLE語句刪除舊主鍵并添加新主鍵
    2024-12-12

最新評論