表數(shù)據(jù)導(dǎo)出到一個(gè)文本文件最簡(jiǎn)單的方法是使用SELECT... INTO OUTFILE語(yǔ)句的查詢結(jié)果直接導(dǎo)出到一個(gè)文件在服務(wù)器主機(jī)上。
導(dǎo)出數(shù)據(jù)的SELECT...INTO OUTFILE聲明:
這句話的語(yǔ)法結(jié)合了常規(guī)的SELECT INTO OUTFILE文件名的末尾。默認(rèn)的輸出格式是相同的LOAD DATA,所以下面的語(yǔ)句導(dǎo)出tutorials_tbl的表制表符分隔的,換行結(jié)尾的文件到/tmp/tutorials.txt:
mysql> SELECT * FROM tutorials_tbl -> INTO OUTFILE '/tmp/tutorials.txt';
也可以更改輸出格式,使用選項(xiàng)來(lái)指示如何引用和分隔列和記錄。 CRLF終止線要導(dǎo)出tutorial_tbl的CSV格式的表格,使用這樣的語(yǔ)句:
mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/tutorials.txt' -> FIELDS TERMINATED BY ',' ENCLOSED BY '"' -> LINES TERMINATED BY '/r/n';
SELECT ... INTO OUTFILE具有以下屬性:
作為原始數(shù)據(jù)的導(dǎo)出表:
使用mysqldump程序復(fù)制或備份表和數(shù)據(jù)庫(kù)。它可以寫表輸出的原始數(shù)據(jù)文件或?yàn)橐唤M的INSERT語(yǔ)句重新創(chuàng)建該表中的記錄。
轉(zhuǎn)儲(chǔ)一個(gè)表,必須指定一個(gè)數(shù)據(jù)文件 - 選項(xiàng)卡上的選項(xiàng),表示想要的MySQL服務(wù)器寫入文件所在的目錄。
使用mysqldump程序復(fù)制或備份表和數(shù)據(jù)庫(kù)。它可以寫表輸出的原始數(shù)據(jù)文件,或?yàn)橐唤M的INSERT語(yǔ)句重新創(chuàng)建該表中的記錄。
轉(zhuǎn)儲(chǔ)一個(gè)表,必須指定一個(gè)數(shù)據(jù)文件 - 選項(xiàng)卡上的選項(xiàng),表示想要的MySQL服務(wù)器寫入文件所在的目錄。
$ mysqldump -u root -p --no-create-info / --tab=/tmp TUTORIALS tutorials_tblpassword ******
在SQL格式導(dǎo)出表的內(nèi)容或定義:
一個(gè)表中的SQL格式導(dǎo)出到一個(gè)文件,使用這樣的命令:
$ mysqldump -u root -p TUTORIALS tutorials_tbl > dump.txtpassword ******
這將創(chuàng)建文件的內(nèi)容如下:
-- MySQL dump 8.23---- Host: localhost Database: TUTORIALS----------------------------------------------------------- Server version 3.23.58---- Table structure for table `tutorials_tbl`--CREATE TABLE tutorials_tbl ( tutorial_id int(11) NOT NULL auto_increment, tutorial_title varchar(100) NOT NULL default '', tutorial_author varchar(40) NOT NULL default '', submission_date date default NULL, PRIMARY KEY (tutorial_id), UNIQUE KEY AUTHOR_INDEX (tutorial_author)) TYPE=InnoDB;---- Dumping data for table `tutorials_tbl`--INSERT INTO tutorials_tbl VALUES (1,'Learn PHP','John Poul','2007-05-24');INSERT INTO tutorials_tbl VALUES (2,'Learn MySQL','Abdul S','2007-05-24');INSERT INTO tutorials_tbl VALUES (3,'JAVA Tutorial','Sanjay','2007-05-06');
要轉(zhuǎn)儲(chǔ)多個(gè)表,他們的名字所有的數(shù)據(jù)庫(kù)名稱參數(shù)。要轉(zhuǎn)儲(chǔ)整個(gè)數(shù)據(jù)庫(kù),不指定任何表后的數(shù)據(jù)庫(kù),如下所示:
$ mysqldump -u root -p TUTORIALS > database_dump.txtpassword ******
所有可用的數(shù)據(jù)庫(kù)備份主機(jī)上使用以下命令:
$ mysqldump -u root -p --all-databases > database_dump.txtpassword ******
在SQL格式導(dǎo)出表的內(nèi)容或定義:
這些方法可用于實(shí)現(xiàn)數(shù)據(jù)庫(kù)的備份策略。
表或數(shù)據(jù)庫(kù)復(fù)制到另一臺(tái)主機(jī):
如果要復(fù)制的表或數(shù)據(jù)庫(kù)從一個(gè)MySQL服務(wù)器,然后使用mysqldump數(shù)據(jù)庫(kù)名和表名。
在源主機(jī)上運(yùn)行以下命令。這將轉(zhuǎn)儲(chǔ)完整的數(shù)據(jù)庫(kù)到dump.txt文件:
$ mysqldump -u root -p database_name table_name > dump.txtpassword *****
復(fù)制完整的數(shù)據(jù)庫(kù),而不使用一個(gè)特定的表名稱,如上面所解釋。
現(xiàn)在,F(xiàn)TP dump.txt文件在另一臺(tái)主機(jī)上,使用下面的命令。在運(yùn)行此命令之前,請(qǐng)確保已創(chuàng)建目標(biāo)服務(wù)器上的數(shù)據(jù)庫(kù)名稱。
$ mysql -u root -p database_name < dump.txtpassword *****
另一種方法,而無(wú)需使用一個(gè)中間文件來(lái)完成,mysqldump輸出直接通過(guò)網(wǎng)絡(luò)發(fā)送到遠(yuǎn)程的MySQL服務(wù)器。如果可以連接到兩臺(tái)服務(wù)器的cookbook 數(shù)據(jù)庫(kù)所在的主機(jī)上,使用以下命令:
$ mysqldump -u root -p database_name / states | mysql -h other-host.com database_name
命令mysqldump的一半連接到本地服務(wù)器,并寫入轉(zhuǎn)儲(chǔ)輸出管道。 MySQL的一半的命令連接到遠(yuǎn)程MySQL服務(wù)器otherhost.com。它讀取輸入管和其他host.com服務(wù)器發(fā)送的每個(gè)語(yǔ)句。
新聞熱點(diǎn)
疑難解答
圖片精選