MySQL之數據導入導出

平常開發中,常常會涉及到對於數據庫中數據的導入與導出操做,格式也有不少: TXT,CSV,XLS,SQL等格式,因此,在此總結一下,省的老是百度查詢.php

 

一  導出mysql

1) 經常使用的方式就是使用現成的工具例如: Navicat 或者phpmyadmin 固然這是在Windows下常常使用到的工具,若是是Mac固然也有比較好用的軟件進行數據導出linux

  Navicat: 選擇要導出的表/庫 -> 導出嚮導->選擇導出的格式 便可sql

 

   phpmyadmin: 選擇表/庫  ->  導出 -> 選擇導出的格式便可數據庫

 

 

有些狀況導入的時候報數據錯誤,可使用這種方式進行嘗試解決:服務器

  xls   >  將xls文件另存爲CSV格式  ->  打開CSV格式文件,另存爲TXT格式,保存的時候使用utf8編碼   -> 刪除xls和CSV格式的文件  ->  將TXT文件後綴改爲CSV格式   -> 使用工具進行導入(Navicat || phpadmin)socket

 

 2) 命令導出  (若是是在linux中操做的話,使用命令的導出方式是最經常使用的了)工具

//導出完整數據:
mysqldump    -u用戶名    -p密碼    庫名    [表名]    >  保存的文件名稱
mysqldump -uroot -proot  a user > user.sql(C:\Users\Administrator\Desktop\user.sql)

//導出數據表結構:
mysqldump    -u用戶名    -p密碼    -d   庫名    表名  >  保存的文件名稱
mysqldump    -u用戶名    -p密碼   --no-data  --databases d1 > 文件名

//導出數據表中數據:
mysqldump    -u用戶名    -p密碼    -t    庫名    表名  > 保存的文件名

//導出全部數據庫中(包含系統數據庫)的數據庫
mysqldump    -u用戶名    -p密碼    --all-databases    >保存的文件名

//導出d1,d2兩個數據庫中的全部數據
mysqldump    -u用戶名    -p密碼    --databases   d1  d2 > 保存的文件名

//導出d1中的a1,a2表
mysqldump    -u用戶名    -p密碼    --databases  d1  --tables a1  a2  >  保存的文件名  

//導出d1庫 a1表中id=1的數據
mysqldump    -u用戶名    -p密碼   --databases d1  --tables a1   --where='id=1'  > 保存的文件名

//跨服務器導出導入數據
mysqldump --host=h1 -uroot -proot  db1 |mysql --host=h2 -uroot -proot db2(能夠指定不一樣數據庫)

//將h1服務器中的db1數據庫的全部數據導入到h2中的db2數據庫中,db2的數據庫必須存在不然會報錯(使用這種方式必須是相同的庫名才能夠)
mysqldump --host=192.168.80.137 -uroot -proot -C --databases test |mysql --host=192.168.80.133 -uroot -proot test 
//-C  進行傳輸壓縮  //--single-transaction  保證備份的一致性(工做原理是設定本次會話的隔離級別爲:REPEATABLE READ,以確保本次會話(dump)時,不會看到其餘會話已經提交了的數據)
//壓縮備份
  mysqldump -uroot -proot --databases abc 2>/dev/null |gzip >/abc.sql.gz
//還原
  gunzip -c abc.sql.gz |mysql -uroot -proot abc
//經常使用參數: 
//生成新的binlog文件 -F參數 mysqldump -u用戶 -p密碼 --all-databases -l -F > all_databases.sql

  

注意點:編碼

--databases: 若是使用這個參數默認會SQL語句中加入建立庫,use庫語句

使用mysql自帶的命令執行操做spa

/usr/bin/mysql --default-character-set=utf8 --socket=/data/mysql/mysql.sock -u用戶名 -p密碼 -e " select email,score  from gwent.cm_survey  " > gwent.xlsm
//在數據庫進入以前執行命令

select * from user into outfile 'C:/Users/Administrator/user.xls';
//在數據庫中執行命令

    

 

二  導入

1) 使用相應的軟件導入方法, 操做步驟同上

 

2) 使用命令行的方式

  

use database; source E:\xampp\htdocs\SsCpc\djm.sql

 

mysql -u用戶名 -p密碼 數據庫名 < 數據庫名.sql #mysql -uabc_f -p abc < abc.sql
相關文章
相關標籤/搜索