mysql數據庫表初始化恢復,MySQL數據庫恢復

本文目錄一覽:

如何使用MYSQL數據庫進行備份數據恢復

恢復整個數據庫

首先,如果要恢復的數據庫是含有授權表的mysql數據庫,將需要使用–skip-grant-tables選項運行服務器。否則,服務器將抱怨無法找到授權表。在恢復表之後,執行mysqladmin flush-privileges 來告訴服務器加載授權表,並用它們啟動。

將原數據庫目錄的內容拷貝到其他的地方。例如,您可能會在稍後用它們進行崩潰表的事後分析檢查(post-mortem examination)。

用最新的備份文件重新加載數據庫。如果您打算使用由mysqldump 加載的文件,則需要將它們作為mysql的輸入。如果打算使用從數據庫中直接拷貝的文件(如,用tar 或c p),則將它們直接拷貝回到該數據庫目錄中。但是,在這種情況下,應該在拷貝這些文件之前關閉服務器,然後再重新啟動它。

用更新日誌重做在進行備份後又修改了數據庫表的查詢。對於所有可用的更新日誌,可使用它作為mysql的輸入。指定–one-database 選項,使mysql只對想要恢復的數據庫執行查詢。如果您知道需要使用所有的更新日誌文件,可在包含日誌的目錄中使用下列命令:

% ls-t-r-l update.(0-9)* | xargs cat | mysql–one-database db_name

ls 命令產生更新日誌文件的單列列表,更新日誌文件根據服務器生成的順序進行排序(要知道,如果您修改了其中的任何文件,排序的順序都將改變,這將導致更新日誌按錯誤的順序使用)。

您很可能必須使用某些更新日誌。例如,如果自備份以來所產生的日誌命名為update.392、pdate.393 等等,可以重新運行它們中的命令:

% mysql–one-database db_name updata.392

% mysql–one-database db_name updata.393

如果正在運行恢復並打算使用更新日誌恢復由於失策的DROP DATA BASE、DROPTABLE或DELETE 語句而丟失的信息,應確保先從更新日誌中刪除這些語句。

恢復單個的表

恢復單個表是很困難的。如果有通過mysqldump 生成的備份文件並且它恰好不包含您想要的表數據,則需要抽取相關的行並用它們作為mysql的輸入,這部分較容易。困難的是抽取應用於該表的更新日誌的片段。您會發現: mysql_find_rows 實用程序對這方面有幫助,它可以從更新日誌中抽取多行查詢。

另一種可能性是用另一個服務器恢復整個數據庫,然後將所要的該表的文件拷貝到原始數據庫中。這實際很容易!在將文件拷貝回數據庫目錄時,應確保原始數據庫的服務器關閉。

如何修復損壞的MySQL數據表

工具/材料:Management Studio。

1、首先在桌面上,點擊「Management Studio」圖標。

2、之後在窗口上,左側選中要修復的數據表「rss」。

3、接着在窗口上,點擊工具欄里「新建查詢」圖標。

4、接着在窗口上,輸入修復損壞的MySQL數據表的sql語句「repair table rss;」。

4、然後在窗口上,點擊工具欄里「執行」圖標。

5、最後在窗口上,顯示修復損壞的MySQL數據表成功。

mysql的數據刪除後怎麼恢復

如果你要恢復的數據庫是包含授權表的mysql數據庫,您將需要使用–skip贈款-tables選項來運行服務器恢復整個數據庫

– 首先,。否則,服務器會抱怨不能找到授權表。恢復表後,執行mysqladmin沖水privileges告訴服務器裝載授權表,並用它們來啟動。數據庫目錄到其他地方的原始內容

複製。例如,您可以使用它們在以後的事後分析檢查表(驗屍)的崩潰。

酒店與最新的數據庫備份文件重新加載。如果您打算使用mysqldump的所加載的文件,則需要輸入它們作為mysql的。如果您打算使用從數據庫文件直接拷貝(例如,使用tar或CP),它會複製他們直接回數據庫目錄中。然而,在這種情況下,你應該在關閉之前,該服務器複製這些文件,然後重新啟動它。在備份過程中

重做日誌,然後查詢更新數據庫表中。對於所有可用的更新日誌,你可以使用它作為mysql的輸入。指定–one-database選項,因此MySQL只是要還原的數據庫執行查詢。如果你意識到有必要使用所有的更新日誌文件,可以使用包含以下命令日誌的目錄:

%LS-TRL更新(0-9)* | xargs的貓| mysql–。一個數據庫DB_NAME

ls命令生成一個單獨的日誌文件更新列表,更新日誌文件根據服務器(你知道,如果你其中的任何文件,排序順序生成的順序進行排序會發生變化,這將導致在更新日誌中以錯誤的順序使用)。有限公司您可能需要使用一些更新日誌。例如,如果日誌,因為命名update.392備份,pdate.393等產生的,可以在命令重新運行它們:

%的mysql – 一個數據庫DB_NAME 錄入。 392

%的mysql – 一個數據庫DB_NAME updata.393 …

如果您正在運行的恢復,並打算使用更新日誌恢復由於失誤降數據的基礎上,DROPTABLE或DELETE語句和丟失的信息時,一定要在開始更新日誌刪除這些語句。

恢復單個表

恢復單個表是非常困難的。如果是的mysqldump備份文件生成的,它只是不包含數據,您需要一個表,你需要提取的相關線路,並利用它們作為mysql的輸入,這部分比較容易。困難的是,提取在該表的更新日誌中使用的片段。你會發現:mysql_find_rows工具在這方面有所幫助,它可以提取多行從更新日誌查詢。另一種可能性是使用另一台服務器

恢復整個數據庫,然後將該文件複製到表的原始數據庫。這其實很容易!當文件被複制回數據庫目錄,確保原始數據庫服務器關閉。

如何初始化mysql數據庫

初始化mysql數據庫,在shell中運行以下命令:

cd /usr/local/mysql

mkdir sock

cd /usr/local/mysql/bin

初始化數據庫

./mysql_install_db–user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data

或者# mysqld –initialize

擴展資料

mysql數據庫的備份

1、物理冷備份,需要在數據庫關閉狀態下進行,能夠較好的保證數據庫的完整性。一般用於非核心業務,這類業務一般都允許終端,物理冷備份的特點就是速度快,恢復操作簡單。通常通過直接打包數據庫文件夾(如:/usr/local/mysql/data)來實現

2、通過啟用二進制日誌進行增量備份,MySQL支持增量備份,進行增量備份時必須啟用二進制日誌。二進制日誌文件為用戶提供複製,對執行備份點後進行的數據庫更改所需的信息進行恢復。如果進行增量備份,需要刷新二進制日誌。

參考資料來源:百度百科—mySQL

怎麼恢復mysql數據庫

簡單情況下:進入原來mysql安裝路徑下的data文件夾下,找到相應的庫和ibdata1,進行copy,就可回復原來的數據。

複雜情況下:

從另一台機上把mysql數據庫的mysql文件夾拷貝到本地機上,目的是恢複本地機對數據的訪問和操作。經過如下幾種情況的操作。

1.

在本地重裝mysql(安裝目錄d:\program

files\mysql\mysql

server

5.0),直接把mysql文件夾拷貝至d:\program

files\mysql\mysql

server

5.0\。結果,失敗:數據庫連接錯誤。

2.

卸載後重裝mysql,將d:\program

files\mysql\mysql

server

5.0\下的數據備份,只把mysql\data文件夾全部內容拷貝到d:\program

files\mysql\mysql

server

5.0\data下。結果,失敗:數據庫連接錯誤。將備份的數據還完覆蓋。結果,失敗,還是連接不上數據庫。

3.

卸載後重裝mysql,將mysql\data文件夾里的cf1,last文件夾(這兩個是原來mysql里的數據庫)拷貝進d:\program

files\mysql\mysql

server

5.0\data。連接成功,在navicat

for

mysql里看到數據庫cf1和last,但是不能訪問,因為數據全為零。明白了原來data里以數據庫命名的文件存儲的是數據庫的表結構,不是元數據。下一步,把data文件夾里的ibdata1文件(3.4g大,明顯存儲了元數據)拷貝到d:\program

files\mysql\mysql

server

5.0\data里,代替原來的ibdata1文件。重啟電腦,打開navicat

for

mysql,連接成功,數據可以訪問操作。

至此,操作終於成功。其實當初在那台機上把數據導出來,而不是現在直接把文件夾mysql複製過來會更容易恢復。但那台機已經重裝了系統,也就是說mysql失效了。

mysql數據表內容刪除後怎麼恢復

在解決的過程中,以下幾種嘗試:

1.如果開啟了日誌,直接mysqlbinlog 使用日誌恢復即可。

2.如果不是刪除了一個表的部分數據,而是刪除整個表,那麼可以在刪除後馬上用磁盤數據恢復軟件嘗試恢復。(因為刪除表後會有文件被刪除,而刪除表的部分數據,文件還是存在)

3.找數據恢復的公司,使用工具分析ibdata1(分析過程參考一頁一頁查看有沒有歷史記錄存在,使用ibdata1恢複數據,應該是在了解數據表結構的前提下,數據庫除ibdata1外其他數據受損不能正常使用數據庫時嘗試,而不是刪了表數據後恢復什麼的。(事實上,這個文件是存儲現有表數據的,其實也可以設置成每個表一個文件。)

4.mysql下有ib_logfile0和ib_logfile1兩個文件,其實這兩個文件里,記錄了Mysql的一些事物日誌,用於事務的前滾後滾,是Mysql自身使用的,這個文件用文本工具打開後,有很多亂碼,但卻可以查找到被刪除的少量數據的insert記錄,極少數的亂碼通過前後語句找出了原文,最終通過事物日誌恢復了刪除的文件。

註:用事物日誌恢復,需要幾個前提。

1:知道被刪除數據的大概位置,不要這邊查找,那邊又不斷有新數據插入。

2:因為有很多亂碼,適用於查找少量數據,而不是用作大量數據的恢復,浪費體力。

3:如果二進制日誌沒開,沒有備份,那麼只能用這種方法恢復了。

原創文章,作者:QNWMX,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/331314.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
QNWMX的頭像QNWMX
上一篇 2025-01-16 15:46
下一篇 2025-01-16 15:46

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • 數據庫第三範式會有刪除插入異常

    如果沒有正確設計數據庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係數據庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的數據庫存儲引擎

    本文將介紹兩款高性能的數據庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • Python怎麼導入數據庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的數據庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • Go中struct的初始化

    本文將從多個方面詳細闡述Go中struct的初始化方式,包括使用字面量初始化、使用new函數初始化以及使用構造函數等。通過本文的介紹,讀者能夠更深入的了解Go中struct的初始化…

    編程 2025-04-28

發表回復

登錄後才能評論