MySQL 導出數據
MySQL 導出數據
MySQL中你可以使用SELECT...INTO OUTFILE語句來簡單的導出數據到文本文件上。
使用 SELECT ... INTO OUTFILE 語句導出數據
以下實例中我們將數據表 runoob_tbl 數據導出到 /tmp/tutorials.txt 文件中:
mysql>SELECT*FROM runoob_tbl->INTO OUTFILE"/tmp/tutorials.txt";
你可以通過命令選項來設置數據輸出的指定格式,以下實例為導出 CSV 格式:
mysql>SELECT*FROM passwd INTO OUTFILE"/tmp/tutorials.txt"->FIELDS TERMINATED BY","ENCLOSED BY"""->LINES TERMINATED BY"
";
在下面的例子中,生成一個文件,各值用逗號隔開。這種格式可以被許多程序使用。
SELECT a,b,a+b INTO OUTFILE"/tmp/result.text"FIELDS TERMINATED BY","OPTIONALLY ENCLOSED BY"""LINES TERMINATED BY"
"FROM test_table;
SELECT ... INTO OUTFILE 語句有以下屬性:
導出表作為原始數據
mysqldump是mysql用於轉存儲資料庫的實用程序。它主要產生一個SQL腳本,其中包含從頭重新創建資料庫所必需的命令CREATE TABLE INSERT等。
使用mysqldump導出數據需要使用 --tab 選項來指定導出文件指定的目錄,該目標必須是可寫的。
以下實例將數據表 runoob_tbl 導出到 /tmp 目錄中:
$ mysqldump-u root-p--no-create-info --tab=/tmp RUNOOB runoob_tblpassword******
導出SQL格式的數據
導出SQL格式的數據到指定文件,如下所示:
$ mysqldump-u root-p RUNOOB runoob_tbl>dump.txtpassword******
以上命令創建的文件內容如下:
--MySQLdump8.23----Host:localhostDatabase:RUNOOB-----------------------------------------------------------Serverversion3.23.58----Tablestructurefortable`runoob_tbl`--CREATE TABLE runoob_tbl(runoob_idint(11)NOT NULL auto_increment,runoob_title varchar(100)NOT NULLdefault"",runoob_author varchar(40)NOT NULLdefault"",submission_date datedefaultNULL,PRIMARY KEY(runoob_id),UNIQUE KEY AUTHOR_INDEX(runoob_author))TYPE=MyISAM;----Dumpingdatafortable`runoob_tbl`--INSERT INTO runoob_tbl VALUES(1,"Learn PHP","John Poul","2007-05-24");INSERT INTO runoob_tbl VALUES(2,"Learn MySQL","Abdul S","2007-05-24");INSERT INTO runoob_tbl VALUES(3,"JAVA Tutorial","Sanjay","2007-05-06");
如果你需要導出整個資料庫的數據,可以使用以下命令:
$ mysqldump-u root-p RUNOOB>database_dump.txtpassword******
如果需要備份所有資料庫,可以使用以下命令:
$ mysqldump-u root-p--all-databases>database_dump.txtpassword******
--all-databases 選項在 MySQL 3.23.12 及以後版本加入。
該方法可用於實現資料庫的備份策略。
將數據表及資料庫拷貝至其他主機
如果你需要將數據拷貝至其他的 MySQL 伺服器上, 你可以在 mysqldump 命令中指定資料庫名及數據表。
在源主機上執行以下命令,將數據備份至 dump.txt 文件中:
$ mysqldump-u root-p database_name table_name>dump.txtpassword*****
如果完整備份資料庫,則無需使用特定的表名稱。
如果你需要將備份的資料庫導入到MySQL伺服器中,可以使用以下命令,使用以下命令你需要確認資料庫已經創建:
$ mysql-u root-p database_name
你也可以使用以下命令將導出的數據直接導入到遠程的伺服器上,但請確保兩台伺服器是相通的,是可以相互訪問的:$ mysqldump-u root-p database_name mysql-h other-host.com database_name
以上命令中使用了管道來將導出的數據導入到指定的遠程主機上。
TAG:Mac芳的成長筆記 |