亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

前言

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

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

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

1、使用mysqldump命令備份

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3、使用mysqlhotcopy工具快速備份

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

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

mysqlhotcopy [option] dbname1 dbname2 ... backupDir/

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

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

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

1、使用mysql命令還原

管理員通常使用mysqldump命令將數(shù)據(jù)庫中的數(shù)據(jù)備份成一個(gè)文本文件。通常這個(gè)文件的后綴名是.sql。需要還原時(shí),可以使用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í),表示還原該數(shù)據(jù)庫下的表。不指定數(shù)據(jù)庫名時(shí),表示還原特定的一個(gè)數(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ù)庫目錄下。通過這種方式還原時(shí),必須保證兩個(gè)MySQL數(shù)據(jù)庫的主版本號是相同的。因?yàn)橹挥蠱ySQL數(shù)據(jù)庫主版本號相同時(shí),才能保證這兩個(gè)MySQL數(shù)據(jù)庫的文件類型是相同的。而且,這種方式對MyISAM類型的表比較有效。對于InnoDB類型的表則不可用。因?yàn)镮nnoDB表的表空間不能直接復(fù)制。

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

數(shù)據(jù)庫遷移就是指將數(shù)據(jù)庫從一個(gè)系統(tǒng)移動到另一個(gè)系統(tǒng)上。數(shù)據(jù)庫遷移的原因是多種多樣的??赡苁且?yàn)樯壛擞?jì)算機(jī),或者是部署開發(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í)進(jìn)行。假設(shè)從一個(gè)名為host1的機(jī)器中備份出所有的數(shù)據(jù)庫,然后,將這些數(shù)據(jù)庫遷移到名為host2的機(jī)器上。命令如下:

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

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

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

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

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

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

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

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

select [列名] from table [where 語句] into outfile '目標(biāo)文件'[option];

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

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

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

mysqldump -u root -pPassword -T 目標(biāo)目錄 dbname table [option];

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

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

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

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

其中,Password表示root用戶的密碼;使用-e選項(xiàng)就可以執(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”是在本地計(jì)算機(jī)中查找文本文件時(shí)使用的;“file”參數(shù)指定了文本文件的路徑和名稱;“table”參數(shù)指標(biāo)的名稱;

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

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

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

其中,“Password”參數(shù)是root用戶的密碼,必須與-p選項(xiàng)緊挨著;“local”是在本地計(jì)算機(jī)中查找文本文件時(shí)使用的;“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)文章

最新評論