mysql導入導出

使用into outfile 和 load data infile導入導出數據

 

這種方法的好處是,導出的數據可以自己規定格式,並且導出的是純數據,不存在建表信息,你可以直接導入另外一個同數據庫的不同表中,相對於mysqldump比較靈活機動。


下面的mysql命令是把select的mytable表中的數據導出到/home/db_bak2012文件。

1
2
select from mytable where status!=0 and name!='' into outfile '/home/db_bak2012'   
fields terminated by '|' enclosed by '"' lines terminated by '\r\n' ;

 

參考:   
https://dev.mysql.com/doc/refman/5.7/en/select-into.html

 

導入剛纔備份的數據,可以使用load data infile方法,等價於mysqlimport命令,下面的mysql命令,把導出的數據導入了mytable_bak的表中:

1
2
load data infile '/home/db_bak2012' into table mytable_bak   
fields terminated by '|' enclosed by '"' lines terminated by '\r\n' ;

 

參考:   
https://dev.mysql.com/doc/refman/5.7/en/load-data.html    
https://dev.mysql.com/doc/refman/5.7/en/mysqlimport.html

 

使用mysqldump導出數據庫


我們來看幾個常用用例:

(1)導出整個數據庫數據和表結構   
mysqldump -u 用戶名 -p 數據庫名 > 導出的文件名     
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql

 

(2)導出一個表   
mysqldump -u 用戶名 -p 數據庫名 表名> 導出的文件名    
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql


(3)導出結構不導出數據    
mysqldump --opt -d 數據庫名 -u root -p > xxx.sql    
mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql    
#-d 不導出數據只導出結構 --add-drop-table 在每個create語句之前增加一個drop table

 

(4)導出數據不導出結構

mysqldump -t 數據庫名 -uroot -p > xxx.sql

 

(5)導入數據庫,常用source 命令

mysql -u root -p    
mysql>use 數據庫    
mysql>set names utf8; (先確認編碼,如果不設置可能會出現亂碼,注意不是UTF-8)     
mysql>source ./wcnc_db.sql

 

(6)多庫導出   
上邊的實例只是最基礎的,有的時候我們可能需要批量導出多個庫,我們就可以加上--databases 或者-B,如下語句:

mysqldump  -uroot -p --databases test mysql #空格分隔

還有的時候我們可能需要把數據庫內所有的庫全部備份,我們就可以使用-all-databases,如下語句:

mysqldump  -uroot -p -all-databases

 

(7)條件導出

mysqldump命令中帶有一個 --where/-w 參數,它用來設定數據導出的條件,使用方式和SQL查詢命令中中的where基本上相同,有了它,我們就可以從數據庫中導出你需要的那部分數據了。


命令格式如下:

mysqldump -u用戶名 -p密碼 數據庫名 表名 --where="篩選條件" > 導出文件路徑


例子:

從test數據庫的test_data表中導出id大於100的數據到 /tmp/test.sql 這個文件中

mysqldump -uroot -p123456 test test_data --where=" id > 100" > /tmp/test.sql


導入的時候

mysql -u root -p 123456 test test_data < test.sql

 

參考:   
https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章