平常開發中,常常會涉及到對於數據庫中數據的導入與導出操做,格式也有不少: 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