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

MySQL數(shù)據(jù)備份、還原、數(shù)據(jù)庫遷移以及表的導(dǎo)出和導(dǎo)入

 更新時間:2022年11月08日 10:41:42   作者:曠世奇才李先生  
作為流行的開源數(shù)據(jù)庫管理系統(tǒng),MySQL的使用者眾多,為了維護數(shù)據(jù)安全性,數(shù)據(jù)備份是必不可少的,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)備份、還原、數(shù)據(jù)庫遷移以及表的導(dǎo)出和導(dǎo)入的相關(guān)資料,需要的朋友可以參考下

前言

為了保證數(shù)據(jù)的安全,需要定期對數(shù)據(jù)進行備份。備份的方式有很多種,效果也不一樣。如果數(shù)據(jù)庫中的數(shù)據(jù)出現(xiàn)了錯誤,就需要使用備份好的數(shù)據(jù)進行數(shù)據(jù)還原。這樣可以將損失降至最低。而且,可能還會涉及到數(shù)據(jù)庫之間的數(shù)據(jù)導(dǎo)入與導(dǎo)出。

一、數(shù)據(jù)備份

備份數(shù)據(jù)是數(shù)據(jù)庫管理中最常用的操作。為了保證數(shù)據(jù)庫中數(shù)據(jù)的去安全,數(shù)據(jù)庫管理員需要定期的進行數(shù)據(jù)庫備份。一旦數(shù)據(jù)庫遭到破壞,即通過備份的文件來還原數(shù)據(jù)庫。因此,數(shù)據(jù)備份是很重要的工作。

1、使用mysqldump命令備份

mysqldump命令可以將數(shù)據(jù)庫中的數(shù)據(jù)備份成一個文本文件。表的結(jié)構(gòu)和表中的數(shù)據(jù)將存儲在生成的文本文件中。

mysqldump命令的工作原理很簡單。它先查出需要備份的表的結(jié)構(gòu),再在文本文件中生成一個create語句。然后,將表中的所有記錄轉(zhuǎn)換成一條insert語句。這些create語句和insert語句都是還原時使用的。還原數(shù)據(jù)時就可以使用其中的create語句來創(chuàng)建表。使用其中的insert語句來還原數(shù)據(jù)。

1、備份一個數(shù)據(jù)庫

使用mysqldump命令備份一個數(shù)據(jù)庫的基本語法如下:

mysqldump -u username -p dbname table1 table2 ... > backupname.sql

其中,dbname參數(shù)表示數(shù)據(jù)庫的名稱;table1和table2參數(shù)表示表的名稱,沒有該參數(shù)時將備份整個數(shù)據(jù);backupname.sql參數(shù)表示備份文件的名稱,文件名前面可以加上一個絕對路徑。通常將數(shù)據(jù)庫備份成一個后綴名為sql的文件。

2、備份多個數(shù)據(jù)庫

mysqldump命令備份多個數(shù)據(jù)庫的語法如下:

mysqldump -u username -p --databases dbname1 dbname2 ... > backupname.sql

這里要加上“–databases”這個選項,然后后面跟多個數(shù)據(jù)庫的名稱。

3、備份所有數(shù)據(jù)庫

mysqldump命令備份所有數(shù)據(jù)庫的語法如下:

mysqldump -u username -p --all-databases > backupname.sql

使用“–all-databases”選項就可以備份所有的數(shù)據(jù)庫了。

2、直接復(fù)制整個數(shù)據(jù)庫目錄

MySQL有一種最簡單的備份辦法,就是將MySQL中的數(shù)據(jù)庫文件直接復(fù)制出來。這種方法最簡單,速度也最快。使用這種方法時,最好將服務(wù)器先停止。這樣,可以保證在復(fù)制期間數(shù)據(jù)庫中的數(shù)據(jù)不會發(fā)生變化。如果在復(fù)制數(shù)據(jù)庫的過程中還有數(shù)據(jù)寫入,就會造成數(shù)據(jù)不一致。

這種方法雖然簡單快速,但不是最好的備份方法。因為,實際情況可能不允許停止MySQL服務(wù)器。而且,這種方法對InnoDB存儲引擎的表不適用。對于MyISAM存儲引擎的表,這樣備份和還原很方便。但是還原時最好是相同版本的MySQL數(shù)據(jù)庫,否則可能會存在文件類型不同的情況。

3、使用mysqlhotcopy工具快速備份

如果備份時不能停止MySQL服務(wù)器,可以采用mysqlhotcopy工具。mysqlhotcopy工具的備份方式比mysqldump命令快。

mysqlhotcopy工具是一個Perl腳本,主要在Linux操作系統(tǒng)下使用。mysqlhotcopy工具使用lock tables、flush tables和cp來進行快速備份。其工作原理是,先將需要備份的數(shù)據(jù)庫加上一個讀操作鎖,然后,用flush tables將內(nèi)存中的數(shù)據(jù)寫回到硬盤上的數(shù)據(jù)庫中,最后,把需要備份的數(shù)據(jù)庫文件復(fù)制到目標目錄。使用mysqlhotcopy的命令如下:

mysqlhotcopy [option] dbname1 dbname2 ... backupDir/

其中,dbname1等表示需要備份的數(shù)據(jù)庫的名稱;backupDir參數(shù)指出備份到哪個文件夾下。這個命令的含義就是將dbname1、dbname2等數(shù)據(jù)庫備份到backDir目錄下。

二、數(shù)據(jù)還原

管理員的非法操作和計算機的故障都會破壞數(shù)據(jù)庫文件。當數(shù)據(jù)庫遭到這些意外時,可以通過備份文件將數(shù)據(jù)庫還原到備份的狀態(tài)。這樣可以將損失降低到最小。

1、使用mysql命令還原

管理員通常使用mysqldump命令將數(shù)據(jù)庫中的數(shù)據(jù)備份成一個文本文件。通常這個文件的后綴名是.sql。需要還原時,可以使用mysql命令來還原備份的數(shù)據(jù)。

備份文件中通常包含create語句和insert語句。mysql命令可以執(zhí)行備份文件中的create語句和insert語句。通過create語句來創(chuàng)建數(shù)據(jù)庫和表。通過insert語句來插入備份的數(shù)據(jù)。mysql命令的基本語法如下:

mysql -u root -p [dbname] < backup.sql

其中,dbname參數(shù)表示數(shù)據(jù)庫名稱。該參數(shù)是可選參數(shù),可以指定數(shù)據(jù)庫名,也可以不指定。指定數(shù)據(jù)庫名時,表示還原該數(shù)據(jù)庫下的表。不指定數(shù)據(jù)庫名時,表示還原特定的一個數(shù)據(jù)庫。而備份文件中創(chuàng)建數(shù)據(jù)庫的語句。

下面使用root用戶備份所有的數(shù)據(jù)庫。命令如下:

mysql -u root -p [dbname] < backup.sql

2、直接復(fù)制到數(shù)據(jù)庫目錄

之前介紹過一種直接復(fù)制數(shù)據(jù)的備份方法。通過這種方式備份的數(shù)據(jù),可以直接復(fù)制到MySQL的數(shù)據(jù)庫目錄下。通過這種方式還原時,必須保證兩個MySQL數(shù)據(jù)庫的主版本號是相同的。因為只有MySQL數(shù)據(jù)庫主版本號相同時,才能保證這兩個MySQL數(shù)據(jù)庫的文件類型是相同的。而且,這種方式對MyISAM類型的表比較有效。對于InnoDB類型的表則不可用。因為InnoDB表的表空間不能直接復(fù)制。

三、數(shù)據(jù)庫遷移

數(shù)據(jù)庫遷移就是指將數(shù)據(jù)庫從一個系統(tǒng)移動到另一個系統(tǒng)上。數(shù)據(jù)庫遷移的原因是多種多樣的??赡苁且驗樯壛擞嬎銠C,或者是部署開發(fā)的管理系統(tǒng),或者升級了MySQL數(shù)據(jù)庫。甚至是換用其他的數(shù)據(jù)庫。根據(jù)上述情況,可以將數(shù)據(jù)庫遷移大致分為3類。這3類分別是在相同版本的MySQL數(shù)據(jù)庫之間遷移、遷移到其他版本的MySQL數(shù)據(jù)庫中和遷移到其他類型的數(shù)據(jù)庫中。

1、相同版本的MySQL數(shù)據(jù)庫之間的遷移

只有數(shù)據(jù)庫表都是MyISAM類型的才能使用這種方式。

最常用和最安全的方式是使用mysqldump命令來備份數(shù)據(jù)庫。然后使用mysql命令將備份文件還原到新的MySQL數(shù)據(jù)庫中。這里可以將備份和遷移同時進行。假設(shè)從一個名為host1的機器中備份出所有的數(shù)據(jù)庫,然后,將這些數(shù)據(jù)庫遷移到名為host2的機器上。命令如下:

mysqldump -h name1 -u root --password1 --all-databases | 
mysql -h host2 -u root --password=password2

其中,“|”符號表示管道,其作用是將mysqldump備份的文件送給mysql命令;“–password=password1”是name1主機上root用戶的密碼。同理,password2是name2主機上的root用戶的密碼。通過這種方式可以直接實現(xiàn)遷移。

2、不同版本的MySQL數(shù)據(jù)庫之間的遷移

高版本的MySQL數(shù)據(jù)庫通常都會兼容低版本,因此可以從低版本的MySQL數(shù)據(jù)庫遷移到高版本的MySQL數(shù)據(jù)庫。對于MySIAM類型的表可以直接復(fù)制,也可以使用mysqlhotcopy工具。但是InnoDB類型的表不可以使用這兩種方法。最常用的辦法是使用mysqldump命令來進行備份,然后,通過mysql命令將備份文件還原到目標MySQL數(shù)據(jù)庫中。但是,高版本的MySQL數(shù)據(jù)庫很難遷移到低版本的MySQL數(shù)據(jù)庫。因為高版本的MySQL數(shù)據(jù)庫可能有一些新的特性,這些特性是低版本MySQL數(shù)據(jù)庫所不具有的。數(shù)據(jù)庫遷移時要特別小心,最好使用mysqldump命令來進行備份,避免遷移時造成數(shù)據(jù)丟失。

四、表的導(dǎo)出和導(dǎo)入

MySQL數(shù)據(jù)庫中的表可以導(dǎo)出成文本文件、XML文件或者HTML文件。相應(yīng)的文本文件也可以導(dǎo)入MySQL數(shù)據(jù)庫中。在數(shù)據(jù)庫的日常維護中,經(jīng)常需要進行表的導(dǎo)出和導(dǎo)入的操作。

1、用select…into outfile導(dǎo)出文本文件

MySQL中,可以使用select…into outfile語句將表的內(nèi)容導(dǎo)出成一個文本文件。其基本語法形式如下:

select [列名] from table [where 語句] into outfile '目標文件'[option];

該語句分為兩個部分。前半部分是一個普遍的select語句,通過這個select語句來查詢所需要的數(shù)據(jù);后半部分是導(dǎo)出數(shù)據(jù)的。其中,“目標文件”參數(shù)指出將查詢的記錄導(dǎo)出到哪個文件;“OPTION”參數(shù)是可以有常用的5個選項。

2、用mysqldump命令導(dǎo)出文本文件

mysqldump命令可以備份數(shù)據(jù)庫中的數(shù)據(jù)。但是,備份時是在備份文件中保存了create語句和insert語句。不僅如此,mysqldump命令還可以導(dǎo)出文本文件。其基本的語法形式如下:

mysqldump -u root -pPassword -T 目標目錄 dbname table [option];

其中,Password參數(shù)表示root用戶的密碼,密碼緊挨著-p選項;目標目錄參數(shù)是指導(dǎo)出的文本文件的路徑;dbname參數(shù)表示數(shù)據(jù)庫的名稱;table參數(shù)表示表的名稱;

3、用mysql命令導(dǎo)出文本文件

mysql命令可以用來登錄MySQL服務(wù)器,也可以用來還原備份文件。同時,mysql命令也可以導(dǎo)出文本文件。其基本語法形式如下:

mysql -u root -pPassword -e "select 語句" dbname > C:/name.txt;

其中,Password表示root用戶的密碼;使用-e選項就可以執(zhí)行SQL語句;“selec語句”用來查詢記錄。C:/name.txt表示導(dǎo)出文件的路徑。

4、用load data infile方式導(dǎo)入文本文件

MySQL中,可以使用load data infile命令將文本文件導(dǎo)入到MySQL數(shù)據(jù)庫中。其基本語法形式如下:

load data [local] infile file into table table [option];

其中,“local”是在本地計算機中查找文本文件時使用的;“file”參數(shù)指定了文本文件的路徑和名稱;“table”參數(shù)指標的名稱;

5、用mysqlimport命令導(dǎo)入文本文件

MySQL中,可以使用mysqlimport命令將文本文件導(dǎo)入到MySQL數(shù)據(jù)庫中。其基本語法形式如下:

mysqlimport -u root -pPassword [--LOCAL] dbname file [option]

其中,“Password”參數(shù)是root用戶的密碼,必須與-p選項緊挨著;“local”是在本地計算機中查找文本文件時使用的;“dbname”參數(shù)表示數(shù)據(jù)庫的名稱;“file”參數(shù)指定了文本文件的路徑和名稱;

五、總結(jié)

這里的相關(guān)內(nèi)容還沒有整理完畢,文章后面持續(xù)更新,建議收藏。

到此這篇關(guān)于MySQL數(shù)據(jù)備份、還原、數(shù)據(jù)庫遷移以及表的導(dǎo)出和導(dǎo)入的文章就介紹到這了,更多相關(guān)MySQL數(shù)據(jù)備份還原內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL的Data_ADD函數(shù)與日期格式化函數(shù)說明

    MySQL的Data_ADD函數(shù)與日期格式化函數(shù)說明

    今天看到了MySQL的日期函數(shù),里面很多有用的,這里只把兩個參數(shù)不太好記的粘下來了。
    2010-06-06
  • MySQL事件與觸發(fā)器專題精煉

    MySQL事件與觸發(fā)器專題精煉

    觸發(fā)器是SQLserver提供給程序員和數(shù)據(jù)分析員來保證數(shù)據(jù)完整性的一種方法,它是與表事件相關(guān)的特殊的存儲過程,事件是在?MySQL?5.1后引入的,有點類似操作系統(tǒng)的計劃任務(wù),但是周期性任務(wù)是內(nèi)置在MySQL服務(wù)端執(zhí)行的
    2022-03-03
  • 導(dǎo)致sql執(zhí)行速度慢的幾種情況盤點(生產(chǎn)環(huán)境踩過的坑)

    導(dǎo)致sql執(zhí)行速度慢的幾種情況盤點(生產(chǎn)環(huán)境踩過的坑)

    盤點分析MySQL執(zhí)行速度慢可以幫助我們進行優(yōu)化MySQL數(shù)據(jù)庫的效率,這篇文章主要給大家盤點介紹了關(guān)于導(dǎo)致sql執(zhí)行速度慢的幾種情況,文中介紹的這些主要是生產(chǎn)環(huán)境踩過的坑,需要的朋友可以參考下
    2023-03-03
  • MySQL使用臨時表加速查詢的方法

    MySQL使用臨時表加速查詢的方法

    這篇文章主要介紹了MySQL使用臨時表加速查詢的方法,分析了針對多次重復(fù)查詢使用臨時表的優(yōu)勢,是非常實用的技巧,需要的朋友可以參考下
    2014-12-12
  • MYSQL索引建立需要注意以下幾點細節(jié)

    MYSQL索引建立需要注意以下幾點細節(jié)

    建立MYSQL索引時需要注意以下幾點:建立索引的時機/對于like/對于有多個條件的/開啟索引緩存/建立索引是有代價的等等,感興趣的你可以參考下本文,或許可以幫助到你
    2013-03-03
  • 關(guān)于MySQL的ORDER BY排序詳解

    關(guān)于MySQL的ORDER BY排序詳解

    這篇文章主要介紹了關(guān)于MySQL的ORDER BY排序詳解,如果沒有使用排序操作,默認情況下查詢返回的數(shù)據(jù)是按照添加數(shù)據(jù)的順序顯示的,需要的朋友可以參考下
    2023-05-05
  • Mysql模糊查詢優(yōu)化方法及測試詳細講解

    Mysql模糊查詢優(yōu)化方法及測試詳細講解

    這篇文章主要介紹了Mysql模糊查詢優(yōu)化方法及測試,在MySQL中支持模糊匹配的方法有很多,且各有各的優(yōu)點,感興趣想要詳細了解可以參考下文
    2023-05-05
  • Mysql觸發(fā)器語法解讀(附帶簡單實用例子)

    Mysql觸發(fā)器語法解讀(附帶簡單實用例子)

    這篇文章主要介紹了Mysql觸發(fā)器語法解讀(附帶簡單實用例子),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 如何選擇合適的MySQL日期時間類型來存儲你的時間

    如何選擇合適的MySQL日期時間類型來存儲你的時間

    這篇文章主要介紹了如何選擇合適的MySQL日期時間類型來存儲你的時間,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2020-08-08
  • Ubuntu手動安裝mysql5.7.10

    Ubuntu手動安裝mysql5.7.10

    這篇文章主要為大家詳細介紹了Ubuntu手動安裝mysql5.7.10的詳細過程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02

最新評論