linux下查看文件編碼及修改編碼
http://blog.csdn.net/jnbbwyth/article/details/6991425/
從FTP服務器上下載csv文件下來,我在Linux下查看得知文件的格式為(具體方法參考http://blog.csdn.net/jnbbwyth/article/details/6991425/):set fileencoding
但是我直接使用load data導入的時候,發現中文的列,按照網上的方法修改文件的字符編碼還是不行
我的MySQL的表的字符集是utf的格式的,我的csv文件的格式經過查看是latin1的。通過上面文章的方法把文件的格式不管是改成gb2312還是utf8的,都不行,都會出現亂碼
最后通過下面的這個方法實現導入數據成功
添加了character set gb2312
mysql> load data local infile '/root/bao/zijingtuoguanjiaoyimingxi/資金托管交易明細.csv' into table escrow_transaction_detail character set gb2312 fields TERMINATED BY ',' LINES
TERMINATED BY '\r\n' ignore 1 lines;
sql解釋:
fields TERMINATED BY ',' LINES TERMINATED BY '\r\n' ignore 1 lines;
“,”是字段分割的標志
“\r\n”是行分割的標志
具體的分割標志根據你的csv文件而定
前提: 每個csv文件第一行為字段名
創建的數據庫字段名同csv 文件的字段名
1. 批量導入 多個 csv 文件
for file in ./*.csv;do mv $file tablename.csv;mysqlimport --local --fields-terminated-by="," -uusename -ppassword databasename tablename.csv;rm tablename.csv;done
(改腳本在導入數據的同時會刪除文件 別忘記在導入數據庫前備份文件啊)
2. 導入一個 csv 文件
mysql --local-infile -uusename -ppassword databasename -e "LOAD DATA LOCAL INFILE '1.csv' INTO TABLE tablename FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'"
(',' 和 '\r\n' 是根據你的csv 文件決定的 第一個是 字段分割的標志,第二個是行分割的標志)
(--local-infile: 沒有這個會報錯【ERROR 1148 (42000) at line 1: The used command is not allowed with this MySQL version】)