mysql outfile infile導入導出數據(附加mysqldump) 導出 [plain] SELECT * INTO OUTFILE '/tmp/jason.txt' FIELDS TERMINATED BY ',' FROM test.jason; 或者 [plain] SELECT * INTO OUTFILE '/tmp/jason1.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM test.jason1; 輸出: "2013-04-09 00:06:56","100000198108800","EXPORT_INFO","BUY_ITEM_INNER",65,10,1004,10,"11","2",100 "2013-04-09 00:06:59","1068029027","EXPORT_INFO","BUY_ITEM_INNER",16,7,304,7,"11","2",70 "2013-04-09 00:08:27","100000198108800","EXPORT_INFO","BUY_ITEM_INNER",65,2,1004,2,"11","2",20 導入 [plain] LOAD DATA INFILE '/tmp/jason.txt' INTO TABLE aa.jason FIELDS TERMINATED BY ','; 或者 [plain] LOAD DATA INFILE '/tmp/jason1.txt' INTO TABLE aa.jason1 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'; 總結: FIELDS TERMINATED BY ',' 字段間分割符 OPTIONALLY ENCLOSED BY '"' 將字段包圍 對數值型無效 LINES TERMINATED BY '\n' 換行符 mysqldump也有同樣功能 [plain] mysqldump -uroot -p -T /tmp test fi --fields-enclosed-by=\" --fields-terminated-by="\t" fi 是導出的文件名,默認添加.txt test 是要導出的庫名 -T /tmp 是導出的目錄位置 --fields-enclosed-by=\" 是每個數據都在雙引號裡面 --fields-terminated-by="\t" 表示每個數據是以制表符分割的 這裡再說明一下mysqldump的幾個參數吧 --lock-all-tables ,-x 在開始導出數據之前,提交請求鎖定所有的表,以保證數據的一致性,這是一個全局讀鎖,並且自動關閉--single-transaction和--lock-tables選項,備份完成後,該會話斷開,會自動解鎖。 --lock-tables,-l 這個選項和--lock-all-tables 類似,但是它是指鎖定當前要導出的數據表,而不是一下子把整個數據庫的表都鎖起來,本選項只適用於MyISAM表,如果是innodb表的話,可以使用--single-transaction選項。 --single-transaction InnoDB 表在備份時,通常啟用選項 --single-transaction 來保證備份的一致性,實際上它的工作原理是設定本次會話的隔離級別為:REPEATABLE READ,以確保本次會話(dump)時,不會看到其他會話已經提交了的數據。它只適用於事務表,例如Innodb或者BDB,想要導出大表的話,應該結合--quick選項使用。 --no-create-info, -t 只導出數據,而不添加create table語句 --no-data, -d 不導出任何表數據,只導出表結構。