1. 程式人生 > 資料庫 >mysql資料備份與恢復實現方法分析

mysql資料備份與恢復實現方法分析

本文例項講述了mysql資料備份與恢復實現方法。分享給大家供大家參考,具體如下:

本文內容:

  • 複製檔案法
  • 利用mysqldump
  • 利用select into outfile
  • 其它(列舉但不介紹)

首發日期:2018-04-19


有些時候,在備份之前要先做flush tables ,確保所有資料都被寫入到磁碟中。


複製檔案法:

  • 對於myisam儲存引擎的資料庫,它的表結構(.frm)、資料(.myd)和索引(.myi)都單獨成檔案,可以直接複製這三個檔案到備份空間就可以成功備份了。
  • 至於還原,只需要把三個檔案複製回某個資料庫目錄下即可。


利用mysqldump:

適用情況:本質上是把表結構和資料還原成sql語句,所以可以備份表結構

備份:

  • 單表備份:mysqldump -u使用者名稱 -p 資料庫名 表名 > 備份檔案路徑
  • 多表備份:mysqldump -u使用者名稱 -p 資料庫名 表名1 [其他表名] > 備份檔案路徑
  • 單個數據庫備份:mysqldump -u使用者名稱 -p 資料庫名 > 備份檔案路徑
  • 多個數據庫備份:mysqldump -u使用者名稱 -p --databases 資料庫名1 資料庫名2 [其他資料庫] > 備份檔案路徑
  • 備份所有資料庫:mysqldump -u使用者名稱 -p --all --databases > 備份檔案路徑

還原:

  • mysqldump -u使用者名稱 -p密碼 [資料庫名] < 備份檔案路徑 【指定資料庫時代表只恢復指定資料庫的備份,不指定為恢復備份檔案中所有內容】

補充:

  • mysqldump還可以僅僅匯出表資料【不過考慮到有select into outfile了,這裡就不介紹了】

利用select into outfile:

適用情況:單表資料備份,只能複製表資料,不能複製表結構。

備份:

  • 語法:select *\欄位列表 from 資料來源 into outfile 備份檔案目標路徑 [fields 欄位處理] [lines 行處理]; 【備份檔案目標路徑中檔案必須不存在】
    • fields 欄位處理是可選的,是每個欄位的資料如何儲存,有以下即可小選項
      • enclosed by:以什麼字元來包裹資料,預設是空字元
      • terminated by :以什麼字元作為欄位資料結尾,預設是\t,退格符
      • escaped by: 特殊符號用什麼方法處理,預設是"\\"
      • optionally enclosed by:以什麼字元來包裹資料型別為字串的資料。
      • 語法:
        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 :每行以什麼開始,預設是空字串
      • terminated by :每行記錄以什麼結束,預設是“\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,它會限制資料的匯出,secure-file-priv引數是用來限制LOAD DATA,SELECT ... OUTFILE,and LOAD_FILE()傳到哪個指定目錄的。

image

需要在my.ini中設定image才能正常匯出資料。

還原:

  • 語法:load date infile 備份檔案路徑 into table 表名 [fields 欄位處理] [lines 行處理];【要把之前的欄位處理和行處理都寫下來,不然無法正確區分資料】


其它

  • 備份:
    • 使用mysql命令備份
    • 利用mysqlhotcopy備份
    • 利用backup table
  • 還原:
    • 使用mysqlimport匯入資料檔案。
    • 使用restore還原
    • 使用source還原

更多關於MySQL相關內容感興趣的讀者可檢視本站專題:《MySQL索引操作技巧彙總》、《MySQL常用函式大彙總》、《MySQL日誌操作技巧大全》、《MySQL事務操作技巧彙總》、《MySQL儲存過程技巧大全》及《MySQL資料庫鎖相關技巧彙總》

希望本文所述對大家MySQL資料庫計有所幫助。