今天想用ruby on rails做一个小项目,需要用到mysql数据库,项目中的数据已经有了,只不过是保存在Sql Server中,用rails倒是可以操作Sql Server,但是总感觉不怎么搭配,想转换后使用,网上翻了下,转换的办法有很多,通过ODBC的,通过PHP程序的,写SQL代码的,觉得转换还是用工具吧,先是用ODBC试着玩了下,发现Sql Server的导出功能对mysql ODBC的支持并不是太好
ODBC分32,64位,一开始下了个32位,在Win7 64位上面显示不出来,又从mysql官网下载了64位版本才可以选择添加
64位版本:
http://www.mysql.com/downloads/connector/odbc/
点击完成后你需要选择自己的mysql数据库源
这样就能在ODBC里面看到了.
可惜在sql server的导出数据中转换不成功,说什么体系结构不匹配.
没办法,继续在网上找,发现一篇博客说可以使用mss2sql来转换,结果在win7 64位上转换成功:
参考:http://www.cnblogs.com/andrew-blog/archive/2011/12/03/SQL_mss2sql.html
mss2sql下载地址:https://files.cnblogs.com/andrew-blog/mss2sql.rar
下载后打开压缩包
运行mss2sql
默认就是Move to MysQL server directly,选择下一步
继续下一步,稍等片刻
这次是需要连接到MySQL server了,我是本地,所以选择了Local,填写上你的用户名和密码
继续等待连接
选择在MS SQL里面需要转换的数据库
点下一步,如果mysql里面有同名的数据库,会让你来选择转换的方式,分别是
- Overwrite the entire database:覆盖整个数据库
- Overwrite existing tables only:只覆盖存在的表
- Skip existing tables:跳过存在的表
- Merge:合并
我的mysql里面的只是一张空数据库,所以选了第一项,整个覆盖.
选择需要转换的表,添加到转换列表中,我是需要全部的表,所以选择了Add all
然后就是一段时间的等待
这个表里面的数据并不多,花费时间稍长,大概有10分钟,如果表大的话,可能用程序来转换会快一些,有方便的办法也请告之为谢
下面就是转换成功后的表格了,里面的数据OK,中文也没有什么问题.
本文操作环境为:
win7 64位,sql server 2008 express, Mysql 3.23.49,apache 1.3.33,