求助: SQLSERVER 2005 迁移到 Mysql 的解决方案

2016-12-26 16:41:29 +08:00
 bonfy

各位万能的V友,请问下  SQLSERER 2005 数据 如何迁移到 Mysql,有什么好的方法么?

目前我想到的方法是:

  1. 导出 excel (.xls)
  2. 用 csvkit 将 xls 转成 csv
  3. 将 csv 导入到 mysql  (第三步还没实践)

几点说明:

这样看起来的话,还是有点复杂,而且我还没有尝试将 csv 导入到 mysql,不清楚会不会有中文字符问题,毕竟 Sql server 2005 是 Chinese_PRC_CI_AS,导出后导入 mysql 不一定兼容

求教V友有没有这方面的经验的,指点一二,有什么简单的方法能够完成,而且最好能解决掉中文字符集的问题(存入 Mysql 最好用 utf-8 格式)。

先在此谢谢各位

3742 次点击
所在节点    程序员
35 条回复
bonfy
2016-12-26 16:51:46 +08:00
其实目前的情况是我手边正好也没有 mysql 的数据库(最终是用 mysql ),就先拿 sqlite3 做了下测试

发现成功将 csv 导入到 sqlite3 中了,在 sqlite3 的管理界面里也看到中文数据了,但是用 python peewee 去连 sqlite3 发生了
peewee.OperationalError: Could not decode to UTF-8 column 'name' with text '
\ufffd\ufffd\ufffd\ufffd'

当然这个是 Windows 下的状况,我怀疑是中文字符集问题,当然也可能是 windows 的锅,回去试试 mac

如果有哪位 V 友有经验,请指教一二,谢谢
zouxy
2016-12-26 17:26:31 +08:00
字段不多的话建议自己写个程序脚本 要转换字符集什么的
现成的工具不一定能满足要求
shiny
2016-12-26 18:06:47 +08:00
表不多的话,自己写程序更可靠点。
darrenfang
2016-12-26 18:19:48 +08:00
navicat 有数据同步功能,可以同步 2 个不同的数据库,另外用 navicat 也可以导入 excel
tuimaochang
2016-12-26 18:43:50 +08:00
mhycy
2016-12-26 18:51:55 +08:00
都在线的话,写程序搬
无论是 CSV 还是 XLS 都会因为字符串问题一堆坑

PS. 提醒, CSV 是个极其不可靠的格式
bonfy
2016-12-26 18:57:32 +08:00
@zouxy @shiny 嗯 正在自己码,就是累啊,想想如果有现成的轮子可以省好多时间
bonfy
2016-12-26 18:58:02 +08:00
@darrenfang 这个 navicat 有 mac 版么
keniusahdu
2016-12-26 18:58:32 +08:00
@bonfy 有 mac 版.
bonfy
2016-12-26 19:00:32 +08:00
@mhycy 是啊,已感受 csv 。。。又要面对这些字符集大坑,抓狂😫
darrenfang
2016-12-26 19:41:33 +08:00
@bonfy 有,但是我没用过 Mac 的数据同步功能,不知道是不是一样的
em70
2016-12-26 19:42:57 +08:00
SQLSERVER 先转 access,然后用 access 转 mysql 专用工具,效果很好
bonfy
2016-12-26 20:21:44 +08:00
@darrenfang @keniusahdu mac 上装了试了一下,没有中文的导入报了两个 error ,不过有数据导入,但是有中文的报了 3 个 error ,没有数据导入。。。还在尝试。。。
bonfy
2016-12-26 20:22:40 +08:00
@em70 还要转 access....又要装一个微软的东东...
collo
2016-12-26 20:45:13 +08:00
试一下 DB2DB 工具,我上次试了下 MSSQL 转 Sqlite3 效果不错。

不过这个工具收费的。
em70
2016-12-26 20:47:37 +08:00
@bonfy sqlserver 自带转 access 的功能吧
bonfy
2016-12-26 20:56:11 +08:00
@em70 哦,你说的是导出 access...了解了,刚才理解错了 ;这个可以试试:)
bonfy
2016-12-26 20:59:12 +08:00
@darrenfang @keniusahdu

有进展了,从 xls 直接导入 navicat 有问题。不过我先转成 csv,然后改了下字段长度,终于成功导入了中文。
vibbow
2016-12-26 21:04:26 +08:00
M$ Access ,用 ODBC 连接两个数据库。
然后复制粘贴即可......
foo2bar
2016-12-26 21:54:48 +08:00
这 5 个多小时你一直在折腾数据的导入么?
被这种精神感动,是夏目友人帐的那种感动

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/330287

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX