之前使用MySQL导出过一次线上数据,当时解决了乱码和数据没有正常分隔的问题。
参见这篇文章: 记一次“曲折“的MySQL数据导出
前几个月换了工作电脑,这几天又需要导出几十万的线上数据,在导出过程中还是出现了一些问题,再记录一下。
先获取线上的数据的sql脚本,导入到测试环境,然后用workbench导出。
第一个问题 : 无法导出所有的数据,发现在查询时默认只查询了1000条记录
解决办法 : 选择菜单栏的 Edit -> Preference ,点击 SQL Editor -> SQL Execution, 将Limit Rows Count 的限制取消掉即可。
第二个问题 : 导出的csv文件在用记事本打开并用UTF-8存储之后,再次打开还是会有乱码问题
解决方式 :最后选择用带BOM的UTF-8存储后再打开就没有问题了, 感觉这个可以自己试下各种编码方式
第三个问题 : 虽然编码格式转换后没有乱码问题了,但是在用excel打开后发现部分数据会有分隔不对的问题
解决办法 : 看了下出现问题的数据,发现在文本有 “,” 的地方进行了错误的分隔,因为导出的csv文件默认使用的“,” 为分隔符,所以在打开文件的时候将文本自带的逗号也按照分隔符处理了。最后我改成使用Tab为分隔符,再转化下编码方式就OK了。这个分隔符可以在导出数据的时候选择,如下图 :
这里导出的数据是txt文件,编码转换正确后可以在excel以其为源数据导入,就可以得到最终的excel文件了。