国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

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

這篇具有很好參考價(jià)值的文章主要介紹了mysql根據(jù).frm和.ibd文件恢復(fù)數(shù)據(jù)表。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

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

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

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

要想恢復(fù)數(shù)據(jù),表結(jié)構(gòu)需要和.ibd里面的結(jié)構(gòu)保持一致,如果不一致將恢復(fù)不成功 可能會報(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ù)庫配置修改

編輯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ù)場景酌情配置。

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

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

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

create database test1;
創(chuàng)建表

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

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

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

ALTER TABLE zbp_post DISCARD TABLESPACE;

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

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

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

裝載表空間

ALTER TABLE zbp_post IMPORT TABLESPACE;

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

驗(yàn)證

果然完美

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

如果有朋友遇到類似問題可以和我聯(lián)系。文章來源地址http://www.zghlxwxcb.cn/news/detail-607503.html

到了這里,關(guān)于mysql根據(jù).frm和.ibd文件恢復(fù)數(shù)據(jù)表的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • oracle數(shù)據(jù)表轉(zhuǎn)換為mysql數(shù)據(jù)表

    oracle數(shù)據(jù)表轉(zhuǎn)換為mysql數(shù)據(jù)表

    oracle數(shù)據(jù)表轉(zhuǎn)換為mysql數(shù)據(jù)表,或者反過來,我們可以借助navica的工具 1.打開navicat的工具-數(shù)據(jù)傳輸 2.選擇源數(shù)據(jù)庫以及目標(biāo)數(shù)據(jù)庫 目標(biāo)可以選擇數(shù)據(jù)庫也可以選擇文件,目標(biāo)數(shù)據(jù)庫需要提前建好表,這里是選擇文件,注意選擇一個(gè)文件,sql格式即為目標(biāo)數(shù)據(jù)庫類型,這里不

    2024年02月16日
    瀏覽(18)
  • 【MySQL】MySQL 數(shù)據(jù)類型,數(shù)值、日期和時(shí)間、字符串類型,創(chuàng)建數(shù)據(jù)表,刪除數(shù)據(jù)表

    【MySQL】MySQL 數(shù)據(jù)類型,數(shù)值、日期和時(shí)間、字符串類型,創(chuàng)建數(shù)據(jù)表,刪除數(shù)據(jù)表

    作者簡介: 辭七七,目前大一,正在學(xué)習(xí)C/C++,Java,Python等 作者主頁: 七七的個(gè)人主頁 文章收錄專欄: 七七的閑談 歡迎大家點(diǎn)贊 ?? 收藏 ? 加關(guān)注哦!???? MySQL 中定義數(shù)據(jù)字段的類型對你數(shù)據(jù)庫的優(yōu)化是非常重要的。 MySQL 支持多種類型,大致可以分為三類:數(shù)值、日

    2024年02月15日
    瀏覽(111)
  • MySql基礎(chǔ)教程(三):創(chuàng)建數(shù)據(jù)表、數(shù)據(jù)增刪改查、刪除數(shù)據(jù)表

    MySql基礎(chǔ)教程(三):創(chuàng)建數(shù)據(jù)表、數(shù)據(jù)增刪改查、刪除數(shù)據(jù)表

    創(chuàng)建MySQL數(shù)據(jù)表需要以下信息: 表名 表字段名 定義每個(gè)表字段 1.1 語法 下面是創(chuàng)建MySQL數(shù)據(jù)表的SQL通用語法: 以下例子在 nobug 數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表 nobug_user : 實(shí)例解析: 如果你不想字段為 NULL 可以設(shè)置字段的屬性為 NOT NULL, 在操作數(shù)據(jù)庫時(shí)如果輸入該字段的數(shù)據(jù)為NULL ,

    2024年02月11日
    瀏覽(90)
  • 實(shí)現(xiàn)一個(gè)MYSQL工具類,包含判斷創(chuàng)建數(shù)據(jù)表是否存在,創(chuàng)建數(shù)據(jù)表

    可以使用Python的MySQLdb模塊來實(shí)現(xiàn)一個(gè)MYSQL工具類。下面是一個(gè)簡單的實(shí)現(xiàn)示例: 使用示例: 在上面的示例中,我們首先創(chuàng)建了一個(gè)MySQLTool類,并在初始化方法中傳入了數(shù)據(jù)庫的連接信息。然后使用connect方法連接到數(shù)據(jù)庫。 table_exists方法用于判斷給定的數(shù)據(jù)表是否存在,它執(zhí)

    2024年01月15日
    瀏覽(95)
  • MySQL數(shù)據(jù)表操作

    MySQL數(shù)據(jù)表操作

    目錄 內(nèi)容如下 一、相關(guān)的概念 one / 表(關(guān)系表) two / 字段(表結(jié)構(gòu)) three / 記錄(具體的數(shù)據(jù)) four / 表之間的關(guān)系 five / 二、數(shù)據(jù)類型 one / 整數(shù)類型 two / 浮點(diǎn)數(shù)類型 three / 定點(diǎn)數(shù)類型 four / 字符類型 five / 日期時(shí)間類型 six / 二進(jìn)制類型 三、存儲引擎 one / 概念 tw

    2024年02月10日
    瀏覽(18)
  • MySQL數(shù)據(jù)表查詢

    MySQL數(shù)據(jù)表查詢

    ??作者介紹:一個(gè)有夢想、有理想、有目標(biāo)的,且渴望能夠?qū)W有所成的追夢人。 ??學(xué)習(xí)格言:不讀書的人,思想就會停止?!业铝_ ??個(gè)人主頁:進(jìn)入博主主頁 ??專欄系列:進(jìn)入MySQL知識專欄 ??歡迎小伙伴們訪問到博主的文章內(nèi)容,在瀏覽閱讀過程發(fā)現(xiàn)需要糾正的地

    2024年02月11日
    瀏覽(23)
  • MySQL數(shù)據(jù)表

    首先要進(jìn)入數(shù)據(jù)庫USE name,再創(chuàng)建數(shù)據(jù)表 或者使用數(shù)據(jù)庫.數(shù)據(jù)表的方式創(chuàng)建 1.創(chuàng)建數(shù)據(jù)表 CREATE TABLE [IF NOT EXISTS] 表名( 字段1, 數(shù)據(jù)類型 [約束條件] [默認(rèn)值],# 數(shù)據(jù)類型有INT,VERCHAR(30),CHAR,DATETIME等等 字段2, 數(shù)據(jù)類型 [約束條件] [默認(rèn)值],#約束條件,比如指定為主鍵:PRIMARY KEY,例

    2024年02月13日
    瀏覽(17)
  • mysql數(shù)據(jù)庫和數(shù)據(jù)表

    常用的數(shù)據(jù)類型: int : 整型? 用于定義整數(shù)類型的數(shù)據(jù) float : 單精度浮點(diǎn)4字節(jié)32位? 準(zhǔn)確表示到小數(shù)點(diǎn)后六位. double :雙精度浮點(diǎn)8字節(jié)64位 char :固定長度的字符類型? 用于定義字符類型數(shù)據(jù) varchar :可變長度的字符類型 text : 文本 image: :圖片 SQL語言: Structured Query La

    2024年02月10日
    瀏覽(33)
  • MySQL 數(shù)據(jù)表修復(fù)方法

    MySQL 數(shù)據(jù)表修復(fù)方法

    本文主要講check table和repair table指令; 在檢查、修復(fù)表,除了用 myisamchk 指令,還可以用 check table 、 repair table 指令。(指令不區(qū)分大小寫) 檢查表是否有錯(cuò)誤 CHECK TABLE對 MyISAM 和 InnoDB 表有作用。 對于MyISAM表,統(tǒng)計(jì)信息會被更新,CHECK TABLE也可以檢查視圖是否有錯(cuò)誤,

    2024年02月13日
    瀏覽(19)
  • MySQL--刪除數(shù)據(jù)表(6)

    MySQL--刪除數(shù)據(jù)表(6)

    MySQL中刪除數(shù)據(jù)表是非常容易操作的,但是你在進(jìn)行刪除表操作時(shí)要非常小心,因?yàn)?執(zhí)行刪除命令后所有數(shù)據(jù)都會消失。 語法 以下為刪除 MySQL 數(shù)據(jù)表的通用語法: 參數(shù)說明: table_name 是要?jiǎng)h除的表的名稱。 IF EXISTS 是一個(gè)可選的子句,表示如果表存在才執(zhí)行刪除操作,避免

    2024年01月25日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包