最近在捣鼓一些数据相关的东西。将sql server里的数据导入到ubuntu和mac上的mysql,方法有很多。不过我选择了最简单的一种:将sql server的数据导成csv,然后将csv导入到mysql。
想法挺好,坑挺多。
sql server是windows的,编码格式(unicode)和ubuntu、mac不一样(utf-8)。导出的csv在ubuntu、mac上打开是乱码,更别谈导入了。中间想过很多可行的方法绕过去,后来觉得太傻了。必须要硬刚这个问题,经过反复研究发现了一个简单的解决办法。
在sql server中导出csv,然后在unbuntu/mac中将文件格式转换成utf-8(excel、UE都可以胜任此工作 ),另存为一个新文件,从而得到了需要的utf-8格式的csv了。
在往ubuntu里导入数据之前,需要先手动把表建好,表字段类型跟csv是严格对应上的。
开始往ubuntu mysql里导数据了,导入的时候Field Separator这个选项要改为":",这是两个数据库不兼容的地方,这一步要看运气,有的版本ubuntu需要调,有的不需要。然后一阵挂机,csv就导入到了ubuntu mysql中了。
此时再从unbuntu mysql导出csv,导入到mac mysql。在mac上导入时,可以不做任何修改的,根据提示一路下一步,挂机完毕之后数据就导入完成了。
为什么先要往ubuntu里导入呢?因为mac上我导入了好几天都是各种不行。但是在unbutu上,随便折腾了一下就好了。由此可知ubuntu的兼容性还是比mac要好一些。所以遗留了一个不需要解决的问题:怎么将sql server导出的csv直接导入到mac mysql呢?