溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mysql怎么實(shí)現(xiàn)數(shù)據(jù)備份與恢復(fù)

發(fā)布時間:2020-08-01 14:05:21 來源:億速云 閱讀:161 作者:小豬 欄目:MySQL數(shù)據(jù)庫

這篇文章主要講解了mysql怎么實(shí)現(xiàn)數(shù)據(jù)備份與恢復(fù),內(nèi)容清晰明了,對此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會有幫助。

本文內(nèi)容:

  • 復(fù)制文件法
  • 利用mysqldump
  • 利用select into outfile
  • 其它(列舉但不介紹)

首發(fā)日期:2018-04-19


有些時候,在備份之前要先做flush tables ,確保所有數(shù)據(jù)都被寫入到磁盤中。


復(fù)制文件法:

  • 對于myisam存儲引擎的數(shù)據(jù)庫,它的表結(jié)構(gòu)(.frm)、數(shù)據(jù)(.myd)和索引(.myi)都單獨(dú)成文件,可以直接復(fù)制這三個文件到備份空間就可以成功備份了。
  • 至于還原,只需要把三個文件復(fù)制回某個數(shù)據(jù)庫目錄下即可。

利用mysqldump:

適用情況:本質(zhì)上是把表結(jié)構(gòu)和數(shù)據(jù)還原成sql語句,所以可以備份表結(jié)構(gòu)

備份:

  • 單表備份:mysqldump -u用戶名 -p 數(shù)據(jù)庫名 表名 > 備份文件路徑
  • 多表備份:mysqldump -u用戶名 -p 數(shù)據(jù)庫名 表名1 [其他表名] > 備份文件路徑
  • 單個數(shù)據(jù)庫備份:mysqldump -u用戶名 -p 數(shù)據(jù)庫名  > 備份文件路徑
  • 多個數(shù)據(jù)庫備份:mysqldump -u用戶名 -p --databases  數(shù)據(jù)庫名1 數(shù)據(jù)庫名2 [其他數(shù)據(jù)庫]  > 備份文件路徑
  • 備份所有數(shù)據(jù)庫:mysqldump -u用戶名 -p --all --databases > 備份文件路徑

還原:

  • mysqldump -u用戶名 -p密碼 [數(shù)據(jù)庫名] < 備份文件路徑 【指定數(shù)據(jù)庫時代表只恢復(fù)指定數(shù)據(jù)庫的備份,不指定為恢復(fù)備份文件中所有內(nèi)容】

補(bǔ)充:

  • mysqldump還可以僅僅導(dǎo)出表數(shù)據(jù)【不過考慮到有select into outfile了,這里就不介紹了】

利用select into outfile:

適用情況:單表數(shù)據(jù)備份,只能復(fù)制表數(shù)據(jù),不能復(fù)制表結(jié)構(gòu)。

備份:

  • 語法:select *\字段列表  from 數(shù)據(jù)源 into outfile 備份文件目標(biāo)路徑 [fields 字段處理] [lines 行處理]; 【備份文件目標(biāo)路徑中文件必須不存在】
    • fields 字段處理是可選的,是每個字段的數(shù)據(jù)如何存儲,有以下即可小選項(xiàng)
      • enclosed by:以什么字符來包裹數(shù)據(jù),默認(rèn)是空字符
      • terminated by :以什么字符作為字段數(shù)據(jù)結(jié)尾,默認(rèn)是\t,退格符
      • escaped by: 特殊符號用什么方法處理,默認(rèn)是"\\"
      • optionally enclosed by:以什么字符來包裹數(shù)據(jù)類型為字符串的數(shù)據(jù)。
      • 語法:
        select * from class into outfile "d:\c1.txt" fields enclosed by '-';
        select * from class into outfile "d:\c1.txt" fields enclosed by '-' optionally enclosed by "'";
             
    • lines 行處理是可選的
      • starting by :每行以什么開始,默認(rèn)是空字符串
      • terminated by :每行記錄以什么結(jié)束,默認(rèn)是“\n”
      • 語法:
        select * from class into outfile "d:\c.txt" lines starting by 'start:';
        select * from class into outfile "d:\c1.txt" lines starting by 'start:' terminated by ' \n';
             

注意:在5.7新增了一個特性,secure_file_priv,它會限制數(shù)據(jù)的導(dǎo)出,secure-file-priv參數(shù)是用來限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()傳到哪個指定目錄的。

mysql怎么實(shí)現(xiàn)數(shù)據(jù)備份與恢復(fù)

需要在my.ini中設(shè)置mysql怎么實(shí)現(xiàn)數(shù)據(jù)備份與恢復(fù)才能正常導(dǎo)出數(shù)據(jù)。

還原:

  • 語法:load date infile 備份文件路徑 into table 表名 [fields 字段處理] [lines 行處理];【要把之前的字段處理和行處理都寫下來,不然無法正確區(qū)分?jǐn)?shù)據(jù)】

其它

  • 備份:
    • 使用mysql命令備份
    • 利用mysqlhotcopy備份
    • 利用backup table
  • 還原:
    • 使用mysqlimport導(dǎo)入數(shù)據(jù)文件。
    • 使用restore還原
    • 使用source還原

看完上述內(nèi)容,是不是對mysql怎么實(shí)現(xiàn)數(shù)據(jù)備份與恢復(fù)有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI