mysql 导入csv文件
2017-02-08 17:49
337 查看
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文件而定
Linux 用 shell 脚本 批量 导入 csv 文件 到 mysql 数据库
前提: 每个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】)
从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文件而定
Linux 用 shell 脚本 批量 导入 csv 文件 到 mysql 数据库
前提: 每个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】)
相关文章推荐
- MySQL数据库多表查询
- MYSQL相关
- mysql binlog日志自动清理及手动删除
- Mysql Explain 参数解释
- mac 安装mysql之后编码格式设置的问题
- vs2013 调试mysql
- mysql查看表结构命令
- Mysql命令大全
- mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication错误解决办法
- 查看MYSQL数据库中所有用户及拥有权限
- Cannot load JDBC driver class 'com.mysql.jdbc.Driver '
- ubuntu MySQL5.6修改字符集编码为utf8
- MySql(二)
- ubuntu安装mysql并开启远程访问
- 京东MySQL数据库主从切换自动化
- 腾讯云ubuntu安装Mysql并配置远程访问
- 阿里云磁盘扩容踩坑总结
- mysql服务性能优化—my.cnf配置说明详解(16G内存)
- 批量转换MySQL数据库表的存储引擎的方法
- MySql数据库,对varchar类型字段str进行where str=0条件查询时,查询结果是什么