栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

从DB2导出数据文件,导入到MySQL数据库的编码问题

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从DB2导出数据文件,导入到MySQL数据库的编码问题

问题说明

DB2安装在AIX上,我需要把DB2里面的数据导出到文件里面(如CSV),然后再发送到MySQL服务器上,通过load data进行导入。
这里就涉及到了编码问题,从DB2导出的文件,默认编码是ISO-8859-1,如果数据里有中文,那自然就是乱码。

问题解决过程

问题奇怪奇怪在,如果你用vim 打开 ,然后以gbk的编码显示,

vim  file.csv
:e ++enc=gbk

中文是不乱码的,而且你转成utf-8也是没有用的(因为MySQL是UTF-8的),

iconv -f ISO-8859-1 -t UTF-8 file.csv -o file-utf-8.csv

其实可以把文件下载到本地,用编辑器手动转一下,但是有些文件过大,十几个G,这甚至编辑器打都打不开,所以必须另寻他路。

最后发现了一个很简单的方法,不对文件进行转码,而是在导入MySQL的时候指定编码为gbk即可

load data local infile 'file.csv' into talbe t_file_info  character set gbk fields terminated by ',' enclosed by '"' lines terminated by 'n'

这样就解决了,使用这个命令导入还是挺快的,不过对于一些数据库分片的来说,速度可能会慢些。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/752488.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号