由于工作需要,需要将MSSQL数据库中的信息移植到MySQL当中。在网上查了很多资料,大多说得比较简略,一般都是通
过odbc来进行转换,然后根据出错信息对表进行修改。最初,也尝试了这种办法,发现MSSQL的提示信息很少,而错误却
很多,所以这种办法并不可行。后来又尝试MySQL 官方提供的MySQL Migration Toolkit工具和SQLWays,发现
Migration Toolkit中只要是含中文的信息都不能被移植,而SQLWays虽然可以移植中文,但是由于功能限制,所有
表中的字段都只能有7个字母,这样并不能满足要求。经过自己的努力,终于将数据库移植成功。
具体的方法如下
1.首先用MySQL Migration Toolkit进行数据库的移植,这里只移植表
的结构。只要选择了原数据库(MSSQL)和目标数据库(MySQL)然后根据提示进行
选择和点击next就可以了。值得注意的是在编码处要选择自定义的gb2312编码,
如图所示:
http://lizhilin.myrice.com/project/t1.jpg
http://lizhilin.myrice.com/project/t2.jpg
2.通过SQLWays移植表中的数据.大体步骤也是选择原数据库和目标数据库后
一路next就可以了。当读取完MSSQL中的信息后,再选择import就可以进行导入
了。由于MySQL数据库中已经存在了对应的表,所以SQLWays会在移植过程中提示
创建表和字段失败,不过数据还是会被移植的,这样就绕开了7字节限制,也正
是我想要的结果。需要注意的是,SQLWays需要对数据源进行配置,所以还需要
MySQL的ODBC包,并且在数据源中配置MSSQL和MySQL即可。
3.还有一点需要注意,由于两个数据库之间表的命名方式不同,所以在
Migration Toolkit完成结构的一之后MySQL中的数据库会被命名为
mytable.dbo(MSSQL中为mytable),如果想要命名为mytable,还需要进行一部操
作:新建一个数据库命名为mytable,然后将mytable.dbo的结构拷贝到mytable
中,然后删除mytable.dbo就可以了,这一步可以通过第三方GUI完成,比如EMS
SQL Manager for MySQL等。
至此,两个数据库就完成了移植,希望本文对那些有相同需求的朋友有所帮
助。