mysqldump匯出引數

2021-04-12 22:08:52 字數 4162 閱讀 8703

mysqldump匯出引數

資料庫 /zongfeng 

發表於2005-09-29

比較詳細

(mysqldump命令位於mysql/bin/目錄中)

mysqldump 工具很多方面類似相反作用的工具mysqlimport。它們有一些同樣的選項。但mysqldump能夠做更多的事情。它可以把整個資料庫裝載到乙個單獨的文字檔案中。這個檔案包含有所有重建您的資料庫所需要的sql命令。這個命令取得所有的模式(schema,後面有解釋)並且將其轉換成ddl語法(create語句,即資料庫定義語句),取得所有的資料,並且從這些資料中建立insert語句。這個工具將您的資料庫中所有的設計倒轉。因為所有的東西都被包含到了乙個文字檔案中。這個文字檔案可以用乙個簡單的批處理和乙個合適sql語句導回到mysql中。這個工具令人難以置信地簡單而快速。決不會有半點讓人頭疼地地方。

因此,如果您像裝載整個資料庫meet_a_geek的內容到乙個檔案中,可以使用下面的命令:

bin/mysqldump –p meet_a_geek > meetageek_dump_file.txt

這個語句也允許您指定乙個表進行dump(備份/匯出/裝載?)。如果您只是希望把資料庫meet_a_geek中的表orders中的整個內容匯出到乙個檔案,可以使用下面的命令:

bin/mysqldump –p meet_a_geek orders >meetageek_orders.txt

這個非常的靈活,您甚至可以使用where從句來選擇您需要的記錄匯出到檔案中。要達到這樣的目的,可以使用類似於下面的命令:

bin/mysqldump –p –where="order_id > 2000" meet_a_geek orders > special_dump.txt

mysqldump工具有大量的選項,部分選項如下:

選項/option 作用/action performed

--add-drop-table

這個選項將會在每乙個表的前面加上drop table if

exists語句,這樣可以保證導回mysql資料庫的時候不會出錯,因為每次導回的時候,都會首先檢查表是否存在,存在就刪除

--add-locks

這個選項會在insert語句中捆上乙個lock table和unlock

table語句。這就防止在這些記錄被再次匯入資料庫時其他使用者對錶進行的操作

-c or - complete_insert

這個選項使得mysqldump命令給每乙個產生insert語句加上列(field)的名字。當把資料匯出導另外乙個資料庫時這個選項很有用。

--delayed-insert 在insert命令中加入delay選項

-f or -flush-logs 使用這個選項,在執行匯出之前將會重新整理mysql伺服器的log.

-f or -force 使用這個選項,即使有錯誤發生,仍然繼續匯出

--full 這個選項把附加資訊也加到create table的語句中

-l or -lock-tables 使用這個選項,匯出表的時候伺服器將會給表加鎖。

-t or -no-create- info

這個選項使的mysqldump命令不建立create table語句,這個選項在您只需要資料而不需要ddl(資料庫定義語句)時很方便。

-d or -no-data 這個選項使的mysqldump命令不建立insert語句。

在您只需要ddl語句時,可以使用這個選項。

--opt 此選項將開啟所有會提高檔案匯出速度和創造乙個可以更快匯入的檔案的選項。

-q or -quick 這個選項使得mysql不會把整個匯出的內容讀入記憶體再執行匯出,而是在讀到的時候就寫入導檔案中。

-t path or -tab = path 這個選項將會建立兩個檔案,乙個檔案包含ddl語句或者表建立語句,另乙個檔案包含資料。ddl檔案被命名為table_name.sql,資料檔案被命名為table_name.txt.路徑名是存放這兩個檔案的目錄。目錄必須已經存在,並且命令的使用者有對檔案的特權。

-w "where clause" or -where = "where clause "

如前面所講的,您可以使用這一選項來過篩選將要放到 匯出檔案的資料。

假定您需要為乙個表單中要用到的帳號建立乙個檔案,經理要看今年(2023年)所有的訂單(orders),它們並不對ddl感興趣,並且需要檔案有逗號分隔,因為這樣就很容易匯入到excel中。 為了完成這個人物,您可以使用下面的句子:

bin/mysqldump –p –where "order_date >=''2000-01-01''"

–tab = /home/mark –no-create-info –fields-terminated-by=, meet_a_geek orders

這將會得到您想要的結果。

schema:模式

the set of statements, expressed in data definition language, that completely describe the structure of a data base. 一組以資料定義語言來表達的語句集,該語句集完整地描述了資料庫的結構。

select into outfile :

如果您覺得mysqldump工具不夠酷,就使用select into outfile吧, mysql同樣提供乙個跟load data infile命令有相反作用的命令,這就是select into outfile 命令,這兩個命令有很多的相似之處。首先,它們有所有的選項幾乎相同。現在您需要完成前面用mysqldump完成的功能,可以依照下面的步驟進行操作:

1. 確保mysqld程序(服務)已經在執行

2. cd /usr/local/mysql

3. bin/mysqladmin ping ;// 如果這個句子通不過,可以用這個:mysqladmin -u root -p ping mysqladmin ping用於檢測mysqld的狀態,is alive說明正在執行,出錯則可能需要使用者名稱和密碼。

4. 啟動mysql 監聽程式.

5. bin/mysql –p meet_a_geek;// 進入mysql命令列,並且開啟資料庫meet_a_geek,需要輸入密碼

6. 在命令列中,輸入一下命令:

select * into outfile ''/home/mark/orders.txt'' 

fields

terminated by = '',''

from orders

where order_date >= ''2000-01-01''

在你按了return(回車)之後,檔案就建立了。這個句子就像乙個規則的select語句,只是把想螢幕的輸出重定向到了檔案中。這意味這您可以使用join來實現多表的高階查詢。這個特點也可以被用作乙個報表產生器。

比方說,您可以組合這一章中討論的方法來產生乙個非常有趣的查詢,試試這個:

在mysql目錄建立乙個名為report_g.rpt 的文字檔案,加入下面的行:

use meet_a_geek; 

insert into customers (customer_id, last_name, first_name)

values (null, "kinnard", "vicky");

insert into customers (customer_id, last_name, first_name)

values (null, "kinnard", "steven");

insert into customers (customer_id, last_name, first_name)

values (null, "brown", "sam");

select last_name into outfile ''/home/mark/report.rpt''

from customers where customer_id > 1;

然後確認 mysql程序在執行,並且您在mysql目錄中, 輸入下面的命令:

bin/mysql < report_g.rpt檢查您命名作為輸出的檔案,這個檔案將會包含所有您在customers表中輸入的顧客的姓。 如您所見,您可以使用今天學到的匯入/匯出(import/export)的方法來幫助得到報表。

mysqldump匯出方法

mysqldump匯出方法 字符集設定 myproject 替換為自己的資料庫名稱 從資料庫匯出資料 執行cmd 命令 首先進入mysql 的bin目錄下 cd d program files x86 mysql mysql server 5.0 bin 匯出 mysqldump u root p ...

MySQL dump匯出匯入

1.匯出庫指令碼,資料庫名稱 mysql,要匯出到data資料夾下的mysql.sql檔案中 mysqldump uroot databases mysql p data mysql.sql 回車後輸入資料庫密碼 2.使用剛剛生成的mysql.sql指令碼匯入已有資料庫mysql mysqldump...

mysqldump匯出資料

1 工具 putty filezillaclient 登入伺服器後,使用命令 mysqldump uroot p art 資料庫名 dump art.sql 將art資料庫dump mysqldump uroot p art 資料庫名 art user 表名 dump art user.sql 將a...