mysqldump備份還原

2021-09-24 15:33:40 字數 2516 閱讀 2586

mysqldump引數詳解

mysqldump備份:

mysqldump -u使用者名稱 -p密碼 -h主機 資料庫 a -w 「sql條件」 –lock-all-tables > 路徑
mysqldump還原:

mysqldump -u使用者名稱 -p密碼 -h主機 資料庫 < 路徑
mysqldump按條件匯出:

mysqldump -u使用者名稱 -p密碼 -h主機 資料庫 a –where 「條件語句」 –no-建表》 路徑

mysqldump -uroot -p1234 dbname a –where 「tag='88′」 –no-create-info>\home\

mysqldump按條件匯入:

mysqldump -u使用者名稱 -p密碼 -h主機 資料庫 < 路徑

mysql -uroot -p1234 db1 < \home\sss.sql

mysqldump匯出表:

mysqldump -u使用者名稱 -p密碼 -h主機 資料庫 表

案例:mysqldump -uroot -p123 a –no-data

主要引數

它告訴 mysqldump,匯出的資料將和哪種資料庫或哪個舊版本的 mysql 伺服器相相容。值可以為 ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options 等,要使用幾個值,用逗號將它們隔開。當然了,它並不保證能完全相容,而是盡量相容。

匯出的資料採用包含欄位名的完整 insert 方式,也就是把所有的值都寫在一行。這麼做能提高插入效率,但是可能會受到 max_allowed_packet 引數的影響而導致插入失敗。因此,需要謹慎使用該引數,至少我不推薦。

指定匯出資料時採用何種字符集,如果資料表不是採用預設的 latin1 字符集的話,那麼匯出時必須指定該選項,否則再次匯入資料後將產生亂碼問題。

告訴 mysqldump 在 insert 語句的開頭和結尾增加 /*!40000 alter table table disable keys /; 和 /!40000 alter table table enable keys */; 語句,這能大大提高插入語句的速度,因為它是在插入完所有資料後才重建索引的。該選項只適合 myisam 表。

預設情況下,mysqldump 開啟 –complete-insert 模式,因此不想用它的的話,就使用本選項,設定它的值為 false 即可。

使用十六進製制格式匯出二進位制字串字段。如果有二進位制資料就必須使用本選項。影響到的字段型別有 binary、varbinary、blob。

在開始匯出之前,提交請求鎖定所有資料庫中的所有表,以保證資料的一致性。這是乙個全域性讀鎖,並且自動關閉 –single-transaction 和 –lock-tables 選項。

它和 –lock-all-tables 類似,不過是鎖定當前匯出的資料表,而不是一下子鎖定全部庫下的表。本選項只適用於 myisam 表,如果是 innodb 表可以用 –single-transaction 選項。

只匯出資料,而不新增 create table 語句。

不匯出任何資料,只匯出資料庫表結構。

這只是乙個快捷選項,等同於同時新增 –add-drop-tables –add-locking –create-option –disable-keys –extended-insert –lock-tables –quick –set-charset 選項。本選項能讓 mysqldump 很快的匯出資料,並且匯出的資料能很快導回。該選項預設開啟,但可以用 –skip-opt 禁用。注意,如果執行 mysqldump 沒有指定 –quick 或 –opt 選項,則會將整個結果集放在記憶體中。如果匯出大資料庫的話可能會出現問題。

該選項在匯出大表時很有用,它強制 mysqldump 從伺服器查詢取得記錄直接輸出而不是取得所有記錄後將它們快取到記憶體中。

匯出儲存過程以及自定義函式。

該選項在匯出資料之前提交乙個 begin sql語句,begin 不會阻塞任何應用程式且能保證匯出時資料庫的一致性狀態。它只適用於事務表,例如 innodb 和 bdb。

本選項和 –lock-tables 選項是互斥的,因為 lock tables 會使任何掛起的事務隱含提交。

要想匯出大表的話,應結合使用 –quick 選項。

用 mysqldump 備份出來的檔案是乙個可以直接倒入的 sql 指令碼,有兩種方法可以將資料匯入。

直接用 mysql 客戶端

例如:

mysql -uyejr -pyejr db_name < db_name.sql
其實這不是標準的 sql 語法,而是 mysql 客戶端提供的功能,例如:

source /tmp/db_name.sql;
這裡需要指定檔案的絕對路徑,並且必須是 mysqld 執行使用者(例如 nobody)有許可權讀取的檔案。

MySql備份與還原 mysqldump

mysqldump是個單執行緒邏輯備份工具,將資料庫備份成乙個包含sql語句的文字檔案,包含了建表和insert語句等。如果資料量較大,使用mysqldump太慢。可以採用表檔案遷移的方式 詳見 mysql檔案遷移 目錄 一 單或多表 二 單庫 三 多個資料庫 四 備份所有資料庫 五 mysqldu...

mysqldump備份還原資料庫

1.用mysql實用工具mysqldump備份資料庫 最常用的語法格式 mysqldump opt database backup file.sql 例子 mysqldump uroot ppassword d mysql.sql 2.備份mysql資料庫 由於mysqldump匯出的是完整的sql...

MYSQLDUMP備份和還原MYSQL資料庫

mysqldump options database tables 如果不給定任何表,整個資料庫將被匯出。備份mysql資料庫的命令 mysqldump hhostname uusername ppassword databasename backupfile.sql 備份mysql資料庫為帶刪除表...