文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  使用 mysqldump 傾印分隔文字格式的資料

9.4.3 使用 mysqldump 傾印分隔文字格式的資料

本節說明如何使用 mysqldump 來建立分隔文字的傾印檔案。有關重新載入此類傾印檔案的資訊,請參閱 第 9.4.4 節,〈重新載入分隔文字格式的備份〉

如果您使用 mysqldump--tab=dir_name 選項,它會使用 dir_name 作為輸出目錄,並使用每個表格的兩個檔案,將表格個別傾印到該目錄中。表格名稱是這些檔案的基礎名稱。對於名為 t1 的表格,檔案名稱為 t1.sqlt1.txt.sql 檔案包含表格的 CREATE TABLE 語句。.txt 檔案包含表格資料,每行一個表格列。

以下命令會將 db1 資料庫的內容傾印到 /tmp 資料庫中的檔案

$> mysqldump --tab=/tmp db1

包含表格資料的 .txt 檔案由伺服器寫入,因此它們的所有者是用於執行伺服器的系統帳戶。伺服器使用 SELECT ... INTO OUTFILE 來寫入檔案,因此您必須擁有 FILE 權限才能執行此操作,並且如果給定的 .txt 檔案已存在,則會發生錯誤。

伺服器會將傾印表格的 CREATE 定義傳送至 mysqldump,後者會將它們寫入 .sql 檔案。因此,這些檔案的所有者是執行 mysqldump 的使用者。

最好只使用 --tab 來傾印本機伺服器。如果您將它與遠端伺服器搭配使用,--tab 目錄必須同時存在於本機和遠端主機上,並且 .txt 檔案由遠端目錄(伺服器主機上)的伺服器寫入,而 .sql 檔案由 mysqldump 寫入本機目錄(用戶端主機上)。

對於 mysqldump --tab,伺服器預設會將表格資料寫入 .txt 檔案,每行一個列,欄值之間以 Tab 分隔,欄值周圍沒有引號,並以換行符號作為行終止符。(這些與 SELECT ... INTO OUTFILE 的預設值相同。)

為了能夠使用不同的格式寫入資料檔案,mysqldump 支援以下選項

根據您為這些選項中的任何一個指定的值,可能需要在命令列上適當地引用或跳脫該值,以符合您的命令直譯器。或者,使用十六進位標記法指定該值。假設您希望 mysqldump 將欄值放在雙引號中。若要這樣做,請將雙引號指定為 --fields-enclosed-by 選項的值。但是,這個字元對於命令直譯器來說通常是特殊的,必須特別處理。例如,在 Unix 上,您可以像這樣引用雙引號

--fields-enclosed-by='"'

在任何平台上,您都可以使用十六進位指定值

--fields-enclosed-by=0x22

通常會一起使用多個資料格式化選項。例如,若要以逗號分隔值格式傾印表格,並以歸位/換行符號對 (\r\n) 作為行的終止符,請使用此命令(在單行中輸入)

$> mysqldump --tab=/tmp --fields-terminated-by=,
         --fields-enclosed-by='"' --lines-terminated-by=0x0d0a db1

如果您使用任何資料格式化選項來傾印表格資料,您需要在稍後重新載入資料檔案時指定相同的格式,以確保正確解譯檔案內容。