用SELECT... INTO OUTFILE語句導(dǎo)出MySQL數(shù)據(jù)的教程
表數(shù)據(jù)導(dǎo)出到一個文本文件最簡單的方法是使用SELECT... INTO OUTFILE語句的查詢結(jié)果直接導(dǎo)出到一個文件在服務(wù)器主機上。
導(dǎo)出數(shù)據(jù)的SELECT...INTO OUTFILE聲明:
這句話的語法結(jié)合了常規(guī)的SELECT INTO OUTFILE文件名的末尾。默認的輸出格式是相同的LOAD DATA,所以下面的語句導(dǎo)出tutorials_tbl的表制表符分隔的,換行結(jié)尾的文件到/tmp/tutorials.txt:
mysql> SELECT * FROM tutorials_tbl -> INTO OUTFILE '/tmp/tutorials.txt';
也可以更改輸出格式,使用選項來指示如何引用和分隔列和記錄。 CRLF終止線要導(dǎo)出tutorial_tbl的CSV格式的表格,使用這樣的語句:
mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/tutorials.txt' -> FIELDS TERMINATED BY ',' ENCLOSED BY '"' -> LINES TERMINATED BY '\r\n';
SELECT ... INTO OUTFILE具有以下屬性:
- 由MySQL服務(wù)器直接創(chuàng)建輸出文件,這樣的文件名應(yīng)指定您希望在服務(wù)器主機上的文件將被寫入。沒有本地版本的LOAD DATA LOCAL版本的類似的語句。
- 必須要有MySQL的FILE權(quán)限才能執(zhí)行的SELECT... INTO語句。
- 輸出文件必須不存在。這可以防止MySQL從會破壞文件可能重要。
- 應(yīng)該在服務(wù)器主機上或一些方法來檢索文件從該主機的登錄帳戶。否則SELECT... INTO OUTFILE可能是沒有價值的。
- 在Unix下,創(chuàng)造了世界可讀的文件和所擁有的MySQL服務(wù)器。這意味著雖然就可以讀取該文件,但是不能夠刪除它。
作為原始數(shù)據(jù)的導(dǎo)出表:
使用mysqldump程序復(fù)制或備份表和數(shù)據(jù)庫。它可以寫表輸出的原始數(shù)據(jù)文件或為一組的INSERT語句重新創(chuàng)建該表中的記錄。
轉(zhuǎn)儲一個表,必須指定一個數(shù)據(jù)文件 - 選項卡上的選項,表示想要的MySQL服務(wù)器寫入文件所在的目錄。
使用mysqldump程序復(fù)制或備份表和數(shù)據(jù)庫。它可以寫表輸出的原始數(shù)據(jù)文件,或為一組的INSERT語句重新創(chuàng)建該表中的記錄。
轉(zhuǎn)儲一個表,必須指定一個數(shù)據(jù)文件 - 選項卡上的選項,表示想要的MySQL服務(wù)器寫入文件所在的目錄。
$ mysqldump -u root -p --no-create-info \
--tab=/tmp TUTORIALS tutorials_tbl
password ******
在SQL格式導(dǎo)出表的內(nèi)容或定義:
一個表中的SQL格式導(dǎo)出到一個文件,使用這樣的命令:
$ mysqldump -u root -p TUTORIALS tutorials_tbl > dump.txt password ******
這將創(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)儲多個表,他們的名字所有的數(shù)據(jù)庫名稱參數(shù)。要轉(zhuǎn)儲整個數(shù)據(jù)庫,不指定任何表后的數(shù)據(jù)庫,如下所示:
$ mysqldump -u root -p TUTORIALS > database_dump.txt password ******
所有可用的數(shù)據(jù)庫備份主機上使用以下命令:
$ mysqldump -u root -p --all-databases > database_dump.txt password ******
在SQL格式導(dǎo)出表的內(nèi)容或定義:
這些方法可用于實現(xiàn)數(shù)據(jù)庫的備份策略。
表或數(shù)據(jù)庫復(fù)制到另一臺主機:
如果要復(fù)制的表或數(shù)據(jù)庫從一個MySQL服務(wù)器,然后使用mysqldump數(shù)據(jù)庫名和表名。
在源主機上運行以下命令。這將轉(zhuǎn)儲完整的數(shù)據(jù)庫到dump.txt文件:
$ mysqldump -u root -p database_name table_name > dump.txt password *****
復(fù)制完整的數(shù)據(jù)庫,而不使用一個特定的表名稱,如上面所解釋。
現(xiàn)在,F(xiàn)TP dump.txt文件在另一臺主機上,使用下面的命令。在運行此命令之前,請確保已創(chuàng)建目標服務(wù)器上的數(shù)據(jù)庫名稱。
$ mysql -u root -p database_name < dump.txt password *****
另一種方法,而無需使用一個中間文件來完成,mysqldump輸出直接通過網(wǎng)絡(luò)發(fā)送到遠程的MySQL服務(wù)器。如果可以連接到兩臺服務(wù)器的cookbook 數(shù)據(jù)庫所在的主機上,使用以下命令:
$ mysqldump -u root -p database_name \
states | mysql -h other-host.com database_name
命令mysqldump的一半連接到本地服務(wù)器,并寫入轉(zhuǎn)儲輸出管道。 MySQL的一半的命令連接到遠程MySQL服務(wù)器otherhost.com。它讀取輸入管和其他host.com服務(wù)器發(fā)送的每個語句。
相關(guān)文章
MySQL5.7 group by新特性報錯1055的解決辦法
項目中本來使用的是mysql5.6進行開發(fā),切換到5.7之后,突然發(fā)現(xiàn)原來的一些sql運行都報錯,錯誤編碼1055,錯誤信息和sql_mode中的“only_full_group_by“有關(guān)。下面小編給大家分享下解決辦法2016-12-12
MySQL DBA教程:Mysql性能優(yōu)化之緩存參數(shù)優(yōu)化
在平時被問及最多的問題就是關(guān)于 MySQL 數(shù)據(jù)庫性能優(yōu)化方面的問題,所以最近打算寫一個MySQL數(shù)據(jù)庫性能優(yōu)化方面的系列文章,希望對初中級 MySQL DBA 以及其他對 MySQL 性能優(yōu)化感興趣的朋友們有所幫助2014-03-03
MySQL中數(shù)據(jù)導(dǎo)入恢復(fù)的簡單教程
這篇文章主要介紹了MySQL中數(shù)據(jù)導(dǎo)入恢復(fù)的簡單教程,主要用到了LOAD DATA語句,需要的朋友可以參考下2015-05-05
MySQL的存儲函數(shù)與存儲過程相關(guān)概念與具體實例詳解
MySQL存儲函數(shù)(自定義函數(shù)),函數(shù)一般用于計算和返回一個值,可以將經(jīng)常需要使用的計算或功能寫成一個函數(shù),存儲函數(shù)和存儲過程一樣,都是在數(shù)據(jù)庫中定義一些SQL語句的集合2023-03-03

