MySQL mysqldump 導入/導出 結構&數據&存儲過程&函數&事件&觸發器


一、使用mysqldump導出/導入sql數據文件

二、使用infile/outfile導入/導出txt/csv數據文件

 

———————————————-庫操作———————————————-
1.①導出一個庫結構

mysqldump -d dbname -u root -p > xxx.sql

②導出多個庫結構

mysqldump -d -B dbname1 dbname2 -u root -p > xxx.sql

 

2.①導出一個庫數據

mysqldump -t dbname -u root -p > xxx.sql

②導出多個庫數據

mysqldump -t -B dbname1 dbname2 -u root -p > xxx.sql

 

3.①導出一個庫結構以及數據

mysqldump dbname1 -u root -p > xxx.sql

②導出多個庫結構以及數據

mysqldump -B dbname1 dbname2 -u root -p > xxx.sql


———————————————-表操作———————————————-
4.①導出一個表結構

mysqldump -d dbname1 tablename1 -u root -p > xxx.sql

②導出多個表結構

mysqldump -d -B dbname1 --tables tablename1 tablename2 -u root -p > xxx.sql

 

5.①導出一個表數據

mysqldump -t dbname1 tablename1 -u root -p > xxx.sql

②導出多個表數據

mysqldump -d -B dbname1 --tables tablename1 tablename2 -u root -p > xxx.sql

 

6.①導出一個表結構以及數據

mysqldump dbname1 tablename1 -u root -p > xxx.sql

②導出多個表結構以及數據

mysqldump -B dbname1 --tables tablename1 tablename2 -u root -p > xxx.sql


————————————–存儲過程&函數操作————————————-
7.只導出存儲過程和函數(不導出結構和數據,要同時導出結構的話,需要同時使用-d)

mysqldump -R -ndt dbname1 -u root -p > xxx.sql


———————————————-事件操作———————————————-
8.只導出事件

mysqldump -E -ndt dbname1 -u root -p > xxx.sql


—————————————–觸發器操作——————————————–
9.不導出觸發器(觸發器是默認導出的–triggers,使用–skip-triggers屏蔽導出觸發器)

mysqldump --skip-triggers dbname1 -u root -p > xxx.sql


————————————————————————————————
10.導入 source xxx.sql

mysql --binary-mode=1 -hIP -uroot -p -Pport
sql>use database;
sql>source /PATH/tbl.sql

 


————————————————————————————————
總結一下:

-d 結構(--no-data:不導出任何數據,只導出數據庫表結構)

-t 數據(--no-create-info:只導出數據,而不添加CREATE TABLE 語句)

-n (--no-create-db:只導出數據,而不添加CREATE DATABASE 語句)

-R (--routines:導出存儲過程以及自定義函數)

-E (--events:導出事件)

--triggers (默認導出觸發器,使用--skip-triggers屏蔽導出)

-B (--databases:導出數據庫列表,單個庫時可省略)

--tables 表列表(單個表時可省略)

①同時導出結構以及數據時可同時省略-d和-t
②同時 不 導出結構和數據可使用-ntd
③只導出存儲過程和函數可使用-R -ntd
④導出所有(結構&數據&存儲過程&函數&事件&觸發器)使用-R -E(相當於①,省略了-d -t;觸發器默認導出)
⑤只導出結構&函數&事件&觸發器使用 -R -E -d

PS:如果可以使用相關工具,比如官方的MySQL Workbench,則導入導出都是極為方便的,如下圖。(當然為了安全性,一般情況下都是屏蔽對外操作權限,所以需要使用命令的情況更多些)

 

————————————————————————————————

下面為使用infile/outfile導入/導出txt/csv數據文件操作

10.①首先使用語句看一下可以導入/導出的路徑在哪里

show variables like '%secure%';

 

 

 

表示導入/導出只能存放在E:/下面。

②如果不按照對應路徑進行操作的話,將報如下錯誤:

Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

③如果還有權限問題,請修改my.ini將secure_file_priv設置到有權限的路徑下

 

11.對csv/txt數據導入和導出

①導出csv數據

select *
into outfile 'E:/table1_data.csv'
character set gb2312
fields terminated by ',' optionally enclosed by '"' escaped by '"'
lines terminated by '\r\n'
from table1;

 

②導入csv數據

load data infile 'E:/table1_data.csv'
into table table1 character set gb2312
fields terminated by ',' optionally enclosed by '"' escaped by '"'
lines terminated by '\r\n';

 

③導出txt數據

默認使用空格作為分隔符,需要其它參數請參考上面的csv操作

select *
into outfile 'E:/table1_data.txt'
from table1;

 

④導入txt數據

load data infile 'E:/table1_data.txt'
into table table1;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM