mysqldump備份簡述mysql
mysqldump可產生兩種類型的輸出文件,取決因而否選用 --tab=dir_name選項。linux
1.不使用 --tab=dir_name選項,mysqldump產生的數據文件是純文本的SQL文件,如CREATE(數據庫、表、存儲路徑等)語句和INSERT(記錄)語句組成。輸出結果以一個文件保存,可用mysql命令去恢復備份文件。sql
2.使用 --tab=dir_name選項,mysqldump對於每個須要備份的數據表產生兩個輸出文件:一個是帶分隔符的文本文件,備份的數據表中的每行存儲爲文本中的一行,以"表名.txt"保存;另外一個輸出文件爲數據表的CREATE TABLE語句,以"表名.sql"保存。數據庫
mysqldump語法和選項windows
在linux系統中,能夠使用 man mysqldump命令,或者,mysqldump -hlep命令查看相關選項的使用大數據
--all-databases表示備份系統中全部數據庫,使用 --databases參數以後,必須指定至少一個數據庫的名稱,多個數據庫名稱之間用空格隔開ui
【經常使用的選項】ip
1.--add-drop-table內存
這個選項講會在每個表的前面加上DROP TABLE IF EXISTS語句,這樣能夠保證導回MYSQL數據庫的時候不會出錯,由於每次導回的時候,都會首先檢查表是否存在,存在就刪除。table
2.--add-locks
這個選項會在INSERT語句中捆上一個LOCK TABLE和UNLOCK TABLE語句。這就防止在這些記錄被再次導入數據庫時其餘用戶對錶進行操做。
3.--tab
這個選項將會建立兩個文件,一個是帶分隔符的文本文件,備份的數據表中的每行存儲問文本中的一行,以"表名.txt"保存;另外一個輸出文件爲數據表的CREATE TABLE語句,以"表名.sql"保存。
4.--quick或者--opt
若是你未使用--quick或者--opt選項,那麼mysqldump將在轉儲結果以前把所有內容載入到內存中。這在你轉儲大數據量的數據庫時將會有些問題。該選項默認是打開的,但能夠使用--skip-opt關閉它。
5.--skip-comments
該選項能夠去掉導出文件中的註釋語句
6.--compact
該選項能夠只輸出最重要的語句,而不輸出註釋及刪除表語句等。
在windows下,能夠使用下面的語句導出全部的數據庫
mysqldump -h 主機名 -u 用戶名 -p --all-databases > C:\備份文件名.sql
mysqldump -u用戶名 -p --databases db1 db2 db3... > 備份文件名.sql
mysqldump -u用戶名 -p --databases db_name > db_name.sql(--databases 會生成CRATE DATABASE 和 USE 語句)
mysqldump -u用戶名 -p db_name > db_name.sql (不會生成CRATE DATABASE 和 USE 語句)
mysqldump -u用戶名 -p 數據庫名 表名1 表名2 表名3... > 備份文件名.sql
mysqldump -uroot -p -S /tmp/mysql3306.sock --databases db_name > db_name.sql
mysqldump -uroot -p -S /tmp/mysql3306.sock db_name > db_name.sql