MySQL中mysqldump匯出資料的使用

2021-09-08 13:03:21 字數 4606 閱讀 8956

mysqldump常用引數說明:

幫助使用:mysqldump --help

-a, --all-databases 匯出全部資料庫 mysqldump -uroot -p –a > /tmp/filename.sql

-y, --all-tablespaces 匯出全部表空間

-y, --no-tablespaces 不匯出任何表空間資訊.

--add-drop-database 每個資料庫建立之前新增drop資料庫語句。

--add-drop-table 每個資料表建立之前新增drop資料表語句,預設為開啟狀態,使用–skip-add-drop-table取消選項。

--add-locks 在每個表匯出之前增加lock tables並且之後unlock table.預設為開啟狀態,使用–skip-add-locks取消選項.

-i, --comments 附加注釋資訊,預設為開啟,可以用–skip-comments取消.

--compact 匯出更少的輸出資訊(用於除錯)。去掉注釋和頭尾等結構.

-c, --compress 在客戶端和伺服器之間啟用壓縮傳遞所有資訊

-b, --databases 匯出多個資料庫,引數後面所有名字參量都被看作資料庫名,並且增加use db和create database db的資訊.例如:mysqldump -uroot -p -b test mysql

-e, --events 匯出事件.

-f, --flush-logs 開始匯出之前重新整理日誌請注意:假如一次匯出多個資料庫(使用選項–databases或者–all-databases),將會逐個資料庫重新整理日誌。除使用–lock-all-tables或者–master-data

外。在這種情況下,日誌將會被重新整理一次,相應的所以表同時被鎖定。因此,如果打算同時匯出和重新整理日誌應該使用–lock-all-tables 或者–master-data 和–flush-logs。

mysqldump -uroot -p –all-databases –flush-logs

-f, --force 在匯出過程中忽略出現的sql錯誤.

-d, --no-data 不匯出任何資料,只匯出資料庫表結構。

-p, --password[=name] 連線資料庫密碼

-p, --port=# 連線資料庫埠號

-u, --user=name 指定連線的使用者名稱。

-r, --routines 匯出儲存過程和函式

--triggers 匯出觸發器

--debug-info 輸出除錯資訊並退出

--ignore-table=name 不匯出指定表。指定忽略多個表時,需要重複多次,每次乙個表。每個表必須同時指定資料庫和表名。

--default-character-set 設定預設字符集,預設值為utf8。例如:mysqldump -uroot -p –a –default-character-set=latin1

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

--log-error 附加警告和錯誤資訊到給定檔案. mysqldump -uroot -p --all-databases --log-error=/tmp/mysqldump_error_log.err

--single-transaction

該選項在匯出資料之前提交乙個begin sql語句,begin 不會阻塞任何應用程式且能保證匯出時資料庫的一致性狀態。它只適用於多版本儲存引擎,僅innodb。

本選項和--lock-tables 選項是互斥的,因為lock tables 會使任何掛起的事務隱含提交。要想匯出大表的話,應結合使用--quick 選項。

-l, --lock-tables

開始匯出前,鎖定所有表。用read local鎖定表以允許myisam表並行插入。對於支援事務的表例如innodb和bdb,--single-transaction是乙個更好的選擇,因為它根本不需要鎖定表。

請注意當匯出多個資料庫時,--lock-tables分別為每個資料庫鎖定表。因此,該選項不能保證匯出檔案中的表在資料庫之間的邏輯一致性。不同資料庫表的匯出狀態可以完全不同。

mysqldump -uroot -p --host=localhost --all-databases --lock-tables

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

--master-data

該選項將binlog的位置和檔名追加到輸出檔案中。如果為1,將會輸出change master 命令;如果為2,輸出的change master命令前新增注釋資訊。該選項將開啟--lock-all-tables

選項,除非--single-transaction也被指定(在這種情況下,全域性讀鎖在開始匯出時獲得很短的時間;其他內容參考下面的--single-transaction選項)。

該選項自動關閉--lock-tables選項。

--master-data=1

從庫: 告訴從庫,從主庫的那個位置開始同步.

--master-data=2

注釋中記錄了獲取binlog檔案和位置點

myisam備份場景:

myisam備份是要鎖表,不然資料可能會不一致.

mysqldump -uroot -p123456 -a -b --master-data=2 -x|gzip >/opt/all.sql.gz

innodb備份場景:

mysqldump -uroot -p123456 -a -b --master-data=2 --single-transaction|gzip >/opt/all.sql.gz

for innodb:

mysqldump --user=root --all-databases --flush-privileges --single-transaction --master-data=1 --flush-logs --triggers --routines --events --hex-blob > /tmp/full_dump.sql

mysqldump常用於資料庫的備份與還原,在備份的過程中我們可以根據自己的實際情況新增以上任何引數

語法:

mysqldump -u 使用者名稱 -p 密碼 資料庫 > file.sql

例項:1.匯出整個資料庫(包括資料庫中的資料和建立表的語句)

mysqldump -u username -p dbname > filename.sql

2.匯出資料庫結構(不含資料,只包含建立表的語句)

mysqldump -u username -p -d dbname > filename.sql

3.匯出資料庫中的某張資料表(包含表資料和建立表語句)

mysqldump -u username -p dbname table1 table2 > filename.sql

4.匯出資料庫中的某張資料表的表結構(不含資料)

mysqldump -u username -p -d dbname tablename > filename.sql

5.指定字符集匯出:

mysqldump -uroot -p'123456'--default-character-set=utf-8 -b mydb > /tmp/mydb.sql

6.指定壓縮命令壓縮備份的mysql資料

mysqldump -uroot -p'123456' mydb|gzip > /tmp/mydb.sql.gz

7.過濾mydqldump匯出的mydb.sql檔案的未注釋部分.

egrep -v "#|\*|--|^$" /tmp/mydb.sql

grep -e -v "#|\/|^$|--" /tmp/mydb.sql

如果要匯入資料可執行如下命令:

mysql -u username -p db_name < test_db.sql

還原資料庫操作還可以使用以下方法:

mysql> use db_name  

mysql> source test_db.sql

mysql source 防止亂碼

1.資料庫備份命令

mysqldump -uroot -p --default-character-set=utf8 dbname > /root/dbname.sql

2.匯入資料庫

mysql -uroot -p --default-character-set=utf8

use dbname

source /root/dbname.sql

MySQL中的mysqldump命令使用詳解

mysql中的mysqldump命令使用詳解 mysqldump工具很多方面類似相反作用的工具mysqlimport。它們有一些同樣的選項。但mysqldump能夠做更多的事情。它可以把整個資料庫裝載到乙個單獨的文字檔案中。這個檔案包含有所有重建您的資料庫所需要的sql命令。這個命令取得所有的模式 ...

解析MySQL中mysqldump工具的基本用法

本篇文章是對mysql中mysqldump工具的基本用法進行了詳細的分析介紹,需要的朋友參考下。匯出要用到mysql的mysqldump工具,基本用法是 shell mysqldump options database tables 如果你不給定任何表,整個資料庫將被匯出。通過執行mysqldump...

MySQL中的mysqldump命令使用詳解

mysql有很多可以匯入資料的方法,然而這些只是資料傳輸中的一半,另外的一般是從mysql資料庫中匯出資料。有許多的原因我們需要匯出資料。乙個重要的原因是用於備份資料庫。資料的造價常常是昂貴的,需要謹慎處理它們。經常地備份可以幫助防止寶貴資料地丟失 另外乙個原因是,也許您希望匯出資料來共享。在這個資...