IT技術互動交流平臺

使用SELECT INTO OUTFILE進行導出mysql數據庫的數據的教程

發布日期:2018-12-10 10:47:07

導出mysql數據庫教程

  以下實例中咱們將數據表 runoob_tbl 數據導出到 /tmp/runoob.txt 文件中:

  mysql> SELECT * FROM runoob_tbl

  -> INTO OUTFILE '/tmp/runoob.txt';

  你能夠經過指令選項來設置數據輸出的指定格局,以下實例為導出 CSV 格局:

  mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/runoob.txt'

  -> FIELDS TERMINATED BY ',' ENCLOSED BY '"'

  -> LINES TERMINATED BY '\r\n';

  鄙人面的比如中,生成一個文件,各值用逗號離隔。這種格局能夠被許多程序運用。

  SELECT a,b,a+b INTO OUTFILE '/tmp/result.text'

  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'

  LINES TERMINATED BY '\n'

  FROM test_table;

  SELECT ... INTO OUTFILE 句子有以下特點:

  LOAD DATA INFILE是SELECT ... INTO OUTFILE的逆操作,SELECT句法。為了將一個數據庫的數據寫入一個文件,運用SELECT ... INTO OUTFILE,為了將文件讀回數據庫,運用LOAD DATA INFILE。

  SELECT...INTO OUTFILE 'file_name'方式的SELECT能夠把被挑選的行寫入一個文件中。該文件被創立到服務器主機上,因而您有必要具有FILE權限,才干運用此語法。

  輸出不能是一個已存在的文件。避免文件數據被篡改。

  你需求有一個登陸服務器的賬號來檢索文件。不然 SELECT ... INTO OUTFILE 不會起任何效果。

  在UNIX中,該文件被創立后是可讀的,權限由MySQL服務器所具有。這意味著,盡管你就能夠讀取該文件,但或許無法將其刪去。

  導出表作為原始數據

  mysqldump 是 mysql 用于轉存儲數據庫的實用程序。它首要發生一個 SQL 腳本,其間包括從頭從頭創立數據庫所必需的指令 CREATE TABLE INSERT 等。

  運用 mysqldump 導出數據需求運用 --tab 選項來指定導出文件指定的目錄,該方針有必要是可寫的。

  以下實例將數據表 runoob_tbl 導出到 /tmp 目錄中:

  $ mysqldump -u root -p --no-create-info \

  --tab=/tmp RUNOOB runoob_tbl

  password ******

  導出 SQL 格局的數據

  導出 SQL 格局的數據到指定文件,如下所示:

  $ mysqldump -u root -p RUNOOB runoob_tbl > dump.txt

  password ******

  以上指令創立的文件內容如下:

  -- MySQL dump 8.23

  --

  -- Host: localhost Database: RUNOOB

  ---------------------------------------------------------

  -- Server version 3.23.58

  --

  -- Table structure for table `runoob_tbl`

  --

  CREATE TABLE runoob_tbl (

  runoob_id int(11) NOT NULL auto_increment,

  runoob_title varchar(100) NOT NULL default '',

  runoob_author varchar(40) NOT NULL default '',

  submission_date date default NULL,

  PRIMARY KEY (runoob_id),

  UNIQUE KEY AUTHOR_INDEX (runoob_author)

  ) TYPE=MyISAM;

  --

  -- Dumping data for table `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.txt

  password ******

  假如需求備份一切數據庫,能夠運用以下指令:

  $ mysqldump -u root -p --all-databases > database_dump.txt

  password ******

  --all-databases 選項在 MySQL 3.23.12 及今后版別參加。

  該辦法可用于完成數據庫的備份戰略。

  將數據表及數據庫復制至其他主機

  假如你需求將數據復制至其他的 MySQL 服務器上, 你能夠在 mysqldump 指令中指定數據庫名及數據表。

  在源主機上履行以下指令,將數據備份至 dump.txt 文件中:

  $ mysqldump -u root -p database_name table_name > dump.txt

  password *****

  假如完好備份數據庫,則無需運用特定的表稱號。

  假如你需求將備份的數據庫導入到MySQL服務器中,能夠運用以下指令,運用以下指令你需求承認數據庫現已創立:

  $ mysql -u root -p database_name < dump.txt

  password *****

  你也能夠運用以下指令將導出的數據直接導入到長途的服務器上,但請保證兩臺服務器是相通的,是能夠彼此拜訪的:

  $ mysqldump -u root -p database_name \

  | mysql -h other-host.com database_name

  以上指令中運用了管道來將導出的數據導入到指定的長途主機上。

延伸閱讀:

  • 專題推薦

About IT165 - 廣告服務 - 隱私聲明 - 版權申明 - 免責條款 - 網站地圖 - 網友投稿 - 聯系方式
本站內容來自于互聯網,僅供用于網絡技術學習,學習中請遵循相關法律法規
香港最快开奖现场直播结果