mysql數(shù)據(jù)備份與恢復實現(xiàn)方法分析
本文實例講述了mysql數(shù)據(jù)備份與恢復實現(xiàn)方法。分享給大家供大家參考,具體如下:
本文內(nèi)容:
- 復制文件法
- 利用mysqldump
- 利用select into outfile
- 其它(列舉但不介紹)
首發(fā)日期:2018-04-19
有些時候,在備份之前要先做flush tables ,確保所有數(shù)據(jù)都被寫入到磁盤中。
復制文件法:
- 對于myisam存儲引擎的數(shù)據(jù)庫,它的表結(jié)構(gòu)(.frm)、數(shù)據(jù)(.myd)和索引(.myi)都單獨成文件,可以直接復制這三個文件到備份空間就可以成功備份了。
- 至于還原,只需要把三個文件復制回某個數(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ù)庫時代表只恢復指定數(shù)據(jù)庫的備份,不指定為恢復備份文件中所有內(nèi)容】
補充:
- mysqldump還可以僅僅導出表數(shù)據(jù)【不過考慮到有select into outfile了,這里就不介紹了】
利用select into outfile:
適用情況:單表數(shù)據(jù)備份,只能復制表數(shù)據(jù),不能復制表結(jié)構(gòu)。
備份:
- 語法:select *\字段列表 from 數(shù)據(jù)源 into outfile 備份文件目標路徑 [fields 字段處理] [lines 行處理]; 【備份文件目標路徑中文件必須不存在】
- fields 字段處理是可選的,是每個字段的數(shù)據(jù)如何存儲,有以下即可小選項
- enclosed by:以什么字符來包裹數(shù)據(jù),默認是空字符
- terminated by :以什么字符作為字段數(shù)據(jù)結(jié)尾,默認是\t,退格符
- escaped by: 特殊符號用什么方法處理,默認是"\\"
- 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 :每行以什么開始,默認是空字符串
- terminated by :每行記錄以什么結(jié)束,默認是“\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';
- fields 字段處理是可選的,是每個字段的數(shù)據(jù)如何存儲,有以下即可小選項
注意:在5.7新增了一個特性,secure_file_priv,它會限制數(shù)據(jù)的導出,secure-file-priv參數(shù)是用來限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()傳到哪個指定目錄的。
需要在my.ini中設(shè)置才能正常導出數(shù)據(jù)。
還原:
- 語法:load date infile 備份文件路徑 into table 表名 [fields 字段處理] [lines 行處理];【要把之前的字段處理和行處理都寫下來,不然無法正確區(qū)分數(shù)據(jù)】
其它
- 備份:
- 使用mysql命令備份
- 利用mysqlhotcopy備份
- 利用backup table
- 還原:
- 使用mysqlimport導入數(shù)據(jù)文件。
- 使用restore還原
- 使用source還原
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL索引操作技巧匯總》、《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數(shù)據(jù)庫鎖相關(guān)技巧匯總》
希望本文所述對大家MySQL數(shù)據(jù)庫計有所幫助。
相關(guān)文章
MySQL執(zhí)行SQL文件報錯:Unknown collation ‘utf8mb4_0900_ai_
這篇文章主要給大家分享了MySQL執(zhí)行SQL文件出現(xiàn)【Unknown collation ‘utf8mb4_0900_ai_ci‘】的解決方案,如果又遇到相同問題的同學,可以參考閱讀本文2023-09-09percona-toolkit之pt-kill 殺掉mysql查詢或連接的方法
本文主要描述了percona-toolkit中pt-kill的 使用實例 ,及 一些重要參數(shù)的介紹,需要的朋友可以參考下2016-04-04MySQL分組查詢獲取每組最新的一條數(shù)據(jù)詳解(group?by)
在寫報表功能時遇到一個需要根據(jù)用戶id分組查詢最新一條錢包明細數(shù)據(jù)的需求,下面這篇文章主要給大家介紹了關(guān)于MySQL分組查詢獲取每組最新的一條數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2024-08-08詳解oracle mysql 中的“不等于“ <> != ^=&nbs
oracle中的 != 與 <> 和 ^= 都是不等于,邏輯上沒有區(qū)別而mysql中,<> 和 != 相同,接下來通過本文給大家詳細講解oracle mysql 中的“不等于“ <> != ^= is not,感興趣的朋友一起看看吧2023-04-04