為了得到乙個一致的備份,在相關的表上做乙個lock tables,你只需乙個讀鎖定,當你在資料庫目錄中做檔案的乙個拷貝時,這允許其他執行緒繼續查詢該錶;
當你恢復資料時,需要乙個寫鎖定,以避免衝突。
1、使用sql語句進行備份和恢復——這種方法只能匯出資料的內容,不包括表的結構,如果表的結構檔案損壞,你必須要先恢復原來的表的結構。
備份:select into outfile
假定表tbl_name具有乙個primary key或unique索引,備份乙個資料表的過程如下:
(1)、鎖定資料表,避免在備份過程中,表被更新
mysql>lock tables read tbl_name;
(2)、匯出資料
mysql>select * into outfile 『tbl_name.bak』 from tbl_name;
(3)、解鎖表
mysql>unlock tables;
恢復:需要具備使用檔案的許可權
load data infile
相應的恢復備份的資料的過程如下:
(1)、為表增加乙個寫鎖定:
mysql>lock tables tbl_name write;
(2)、恢復資料
mysql>load data infile 『tbl_name.bak』
->replace into table tbl_name;
如果,你指定乙個low_priority關鍵字,就不必如上要對錶鎖定,因為資料的匯入將被推遲到沒有客戶讀表為止:
mysql>load data low_priority infile 『tbl_name』
->replace into table tbl_name;
(3)、解鎖表
mysql->unlocak tables;
2、使用mysqlimport恢復資料
(用在shell裡面,待理解)
2、 使用mysqldump備份資料(可以備份資料庫的表結構,可以備份乙個完整的資料庫)
a)如果你執行mysqldump沒有--quick或--opt選項,mysqldump將在匯出結果前裝載整個結果集到記憶體中,如果你正在匯出乙個大的資料庫,這將可能是乙個問題。
mysqldump --opt database > backup-file.sql
//把資料庫匯入到backup-file.sql
mysqladmin create target_db_name
//建立新的資料庫target_db_name
mysql target_db_name < backup-file.sql
//匯入資料到target_db_name
mysqldump [options] database [tables]
netstat -an
mysqldump -ukzczuser -pkzcz --opt --default-character-set=utf8 smsota ums_module, ums_role_module, ums_reg, ums_role > ums.bos
shell> mydqldump db_name>db_name.bak
shell>mysql -u root –pmypass db_name>db_name.sql
4、直接拷貝mysql資料庫檔案:myd、myi、frm
mysql備份和恢復 mysql備份和恢復
目標 備份和恢復的3種方法,掌握mysqldump命令匯出資料,source命令匯入資料 備份必要性 重要資料不丟失 資料轉移 mysqldump客戶端 作用 轉儲資料庫 搜尋資料庫進行備份 將資料轉移到另乙個sql伺服器 不一定是mysql伺服器 mysqldump h 主機名 u使用者名稱 p ...
mysql備份和恢復
mysql恢復和備份 mysqldump u root p 備份資料庫名 備份的檔名 mysql uroot p 資料庫名 備份檔案名 另外 etc mysql my.cnf 檔案裡面引數需要修改,才可以匯入比較大的資料 預設情況下如果安裝程式的字符集沒有變動的話 匯入匯出需要新增字符集,例如如果新...
MySQL學習筆記(27) 備份與恢復
本文更新於2020 05 03,使用mysql 5.7,作業系統為deepin 15.4。目錄表資料匯入匯出 mysql的備份分為邏輯備份和物理備份,物理備份分為冷備份和熱備份。恢復分為完全恢復和不完全恢復,不完全恢復又分為基於時間點的恢復和基於位置的恢復。使用mysqldump進行邏輯備份,如my...