最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql如何根據(jù).frm和.ibd文件恢復(fù)數(shù)據(jù)表

 更新時(shí)間:2023年07月28日 08:27:26   作者:peachyy  
這篇文章主要介紹了mysql根據(jù).frm和.ibd文件恢復(fù)數(shù)據(jù)表的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

忠人之事受人之托 起因是因?yàn)橐晃慌笥训臄?shù)據(jù)庫(kù)服務(wù)器被重裝了,只剩下一個(gè)zbp_post.frm和zbp_post.ibd文件。咨詢我能不能恢復(fù),確實(shí)我只用過mysqldump這種工具導(dǎo)出數(shù)據(jù) 然后進(jìn)行恢復(fù)到數(shù)據(jù)庫(kù)。這種直接備份物理存儲(chǔ)文件還沒有嘗試過。

前提是需要?dú)v史ibd文件的所屬數(shù)據(jù)庫(kù)版本 需要和還原新庫(kù)數(shù)據(jù)庫(kù)版本保持一致,這樣才能少踩坑。

創(chuàng)建表結(jié)構(gòu)

要想恢復(fù)數(shù)據(jù),表結(jié)構(gòu)需要和.ibd里面的結(jié)構(gòu)保持一致,如果不一致將恢復(fù)不成功 可能會(huì)報(bào)如下錯(cuò)誤?;蛘咂渌惓?。

[ERROR] InnoDB: Trying to access page number 426442752 in space 24, space name test1/zbp_post, which is outside the tablespace bounds. Byte offset 0, len 16384, i/o type read. If you get this error at mysqld startup, please check that your my.cnf matches the ibdata files that you have in the MySQL server.

獲取表結(jié)構(gòu)

如果明確知道表結(jié)構(gòu) 這一步可跳過。不知道表結(jié)構(gòu)可從這一步操作中獲取到表結(jié)構(gòu)。

借助了mysql utilities工具來查看表結(jié)構(gòu)。

安裝mysql utilities

這里我適用window 其他系統(tǒng)也是類似的操作 下載后安裝好。

https://downloads.mysql.com/archives/get/p/30/file/mysql-utilities-1.6.5-winx64.msi

其他系統(tǒng)下載地址 https://downloads.mysql.com/archives/

進(jìn)入zbp_post.frm目錄中執(zhí)行獲取表結(jié)構(gòu)命令。

cd zbp_post
mysqlfrm --diagnostic ./zbp_post.frm

執(zhí)行完mysqlfrm命令后 輸出如下表結(jié)構(gòu)

CREATE TABLE `zbp_post` (
  `log_ID` int(11) NOT NULL AUTO_INCREMENT,
  `log_CateID` int(11) NOT NULL,
  `log_AuthorID` int(11) NOT NULL,
  `log_Tag` varchar(1000) NOT NULL,
  `log_Status` tinyint(4) NOT NULL,
  `log_Type` int(11) NOT NULL,
  `log_Alias` varchar(1000) NOT NULL,
  `log_IsTop` tinyint(4) NOT NULL,
  `log_IsLock` tinyint(4) NOT NULL,
  `log_Title` varchar(1000) NOT NULL,
  `log_Intro` text,
  `log_Content` longtext,
  `log_CreateTime` int(11) NOT NULL,
  `log_PostTime` int(11) NOT NULL,
  `log_UpdateTime` int(11) NOT NULL,
  `log_CommNums` int(11) NOT NULL,
  `log_ViewNums` int(11) NOT NULL,
  `log_Template` varchar(1000) NOT NULL,
  `log_Meta` longtext,
  `log_BdPush` int(11) NOT NULL,
PRIMARY KEY `PRIMARY` (`log_ID`),
KEY `zbp_log_TPISC` (`log_Type`,`log_PostTime`,`log_IsTop`,`log_Status`,`log_CateID`),
KEY `log_CateID` (`log_CateID`),
KEY `log_AuthorID` (`log_AuthorID`),
KEY `log_PostTime` (`log_PostTime`),
KEY `log_CommNums` (`log_CommNums`),
KEY `log_ViewNums` (`log_ViewNums`),
KEY `log_Title` (`log_Title`)
) ENGINE=InnoDB;

數(shù)據(jù)庫(kù)配置修改

編輯MySQL的配置文件,通常是my.cnf或my.ini文件,在[mysqld]部分添加以下行:

這將確保每個(gè)表有單獨(dú)的.ibd文件。

[mysqld]
innodb_file_per_table=1
wait_timeout=600 #600秒(10分鐘)

wait_timeout=600 這個(gè)配置可以不加 訪問還原數(shù)據(jù)比較大。執(zhí)行超時(shí)的情況。需要根據(jù)場(chǎng)景酌情配置。

開始恢復(fù)數(shù)據(jù)

創(chuàng)建新數(shù)據(jù)庫(kù)

創(chuàng)建一個(gè)數(shù)據(jù)庫(kù) 任意數(shù)據(jù)庫(kù)名。

create database test1;

創(chuàng)建表

進(jìn)入到新創(chuàng)建的數(shù)據(jù)庫(kù)中(use test1),復(fù)制上一步中的表結(jié)構(gòu)SQL。執(zhí)行創(chuàng)建表結(jié)構(gòu)操作。

使用.ibd文件恢復(fù)數(shù)據(jù)到新表

卸載表空間 執(zhí)行此步會(huì)自動(dòng)刪除新表對(duì)應(yīng)的.ibd文件

ALTER TABLE zbp_post DISCARD TABLESPACE;

拷貝備份的.ibd文件到新創(chuàng)建數(shù)據(jù)庫(kù)對(duì)應(yīng)的目錄中。

一般目錄在mysql保存數(shù)據(jù)庫(kù)的目錄。如我當(dāng)前的服務(wù)器mysql數(shù)據(jù)保存的目錄在/usr/local/mysql/data,數(shù)據(jù)庫(kù)名 test1 ,表名 zbp_post。

那么拷貝.ibd文件的目錄為 /usr/local/mysql/data/zbp_post/test1中。

裝載表空間

ALTER TABLE zbp_post IMPORT TABLESPACE;

完成以上步驟后,您應(yīng)該能夠成功還原.ibd文件。請(qǐng)注意,這種方法僅適用于InnoDB引擎的表。如果.ibd文件損壞或不匹配,可能需要使用MySQL的數(shù)據(jù)恢復(fù)工具來修復(fù)數(shù)據(jù)庫(kù)。

驗(yàn)證

果然完美

mysql> select count(1) from zbp_post;
+----------+
| count(1) |
+----------+
|   785216 |
+----------+
1 row in set (0.15 sec)

到此這篇關(guān)于mysql根據(jù).frm和.ibd文件恢復(fù)數(shù)據(jù)表的文章就介紹到這了,更多相關(guān)mysql恢復(fù)數(shù)據(jù)表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL?Workbench快速引入sql文件的圖文教程

    MySQL?Workbench快速引入sql文件的圖文教程

    在MySQL使用時(shí),通常需要將數(shù)據(jù)庫(kù)sql文件保存,或者是導(dǎo)入他人的sql文件,可以使用workbench處理,這篇文章主要給大家介紹了關(guān)于MySQL?Workbench快速引入sql文件的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • MySQL中字符串與Num類型拼接報(bào)錯(cuò)的解決方法

    MySQL中字符串與Num類型拼接報(bào)錯(cuò)的解決方法

    在使用mysql的時(shí)候經(jīng)常要用到拼接的功能,最近的工作就遇到拼接的問題,在將字符串拼接Num類型的時(shí)候發(fā)現(xiàn)居然報(bào)錯(cuò),下面通過這篇文章來看看解決的方法吧,有需要的朋友們可以參考借鑒。
    2016-10-10
  • MySQL從連接到查詢的問題及解決方案

    MySQL從連接到查詢的問題及解決方案

    MySQL是一個(gè)功能強(qiáng)大、應(yīng)用廣泛的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),本文給大家介紹MySQL從連接到查詢的問題及解決方案,感興趣的朋友跟隨小編一起看看吧
    2026-02-02
  • Mysql中int(1)、int(20)的區(qū)別小結(jié)

    Mysql中int(1)、int(20)的區(qū)別小結(jié)

    本文主要介紹了Mysql中int(1)、int(20)的區(qū)別小結(jié),int后的數(shù)字表示最大顯示寬度,一般int后面的數(shù)字M要配合zerofill一起使用才有效,下面就來具體介紹一下,感興趣的可以了解一下
    2025-03-03
  • Linux系統(tǒng)下修改mysql字符集為UTF8步驟

    Linux系統(tǒng)下修改mysql字符集為UTF8步驟

    大家好,本篇文章主要分享的是Linux系統(tǒng)下修改mysql字符集為UTF8步驟,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下吧,方便下次瀏覽
    2021-12-12
  • mysql中#{}和${}的區(qū)別詳解

    mysql中#{}和${}的區(qū)別詳解

    本文主要介紹了mysql中#{}和${}的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • SQL使用ROW_NUMBER() OVER函數(shù)生成序列號(hào)

    SQL使用ROW_NUMBER() OVER函數(shù)生成序列號(hào)

    這篇文章主要介紹了SQL使用ROW_NUMBER() OVER函數(shù)生成序列號(hào),ROW_NUMBER()從1開始,為每一條分組記錄返回一個(gè)數(shù)字,下面文章內(nèi)容具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2021-12-12
  • 如何查詢MySQL中某個(gè)表的索引信息

    如何查詢MySQL中某個(gè)表的索引信息

    MySQL是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),索引是數(shù)據(jù)庫(kù)中非常重要的組成部分,可以幫助提高查詢效率,這篇文章主要給大家介紹了關(guān)于如何查詢MySQL中某個(gè)表的索引信息,需要的朋友可以參考下
    2024-08-08
  • MySQL下常見的啟動(dòng)失敗與備份失敗問題的解決教程

    MySQL下常見的啟動(dòng)失敗與備份失敗問題的解決教程

    這篇文章主要介紹了MySQL下常見的啟動(dòng)失敗與備份失敗問題的解決教程,示例環(huán)境基于Linux系統(tǒng),需要的朋友可以參考下
    2015-11-11
  • MySQL建表和增添改查操作代碼

    MySQL建表和增添改查操作代碼

    這篇文章主要介紹了MySQL建表和增添改查操作代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-03-03

最新評(píng)論

卫辉市| 沅陵县| 瓦房店市| 于田县| 临沧市| 鄄城县| 原阳县| 光泽县| 泗洪县| 勃利县| 五河县| 云阳县| 新邵县| 邹平县| 嘉荫县| 旺苍县| 枞阳县| 翁源县| 嵩明县| 哈巴河县| 锦屏县| 淄博市| 兴义市| 武定县| 平利县| 垣曲县| 城固县| 咸宁市| 平塘县| 平利县| 福海县| 洛浦县| 安仁县| 高平市| 改则县| 仁怀市| 津市市| 华蓥市| 左云县| 灵武市| 浙江省|