目录

一,SQLServer 转Mysql 的几种方法。

二,DB2DB 使用

2.1 迁移出错后的报错日志。

三,补齐出现问题的表

        问题

       原因

        解决


一,SQLServer 转Mysql 的几种方法。

sqlServer 转mysql 最大的问题是语法不一样,数据类型不一样。这个时候就需要用到工具来转换。目前我了解到的有四种工具可以迁移数据。

● SQLyog(SQLyog Ultimate - Powerful MySQL Development and Administration - Webyog)
● Navicat Premium(Navicat Premium | Connects to multiple databases on a single GUI)
● Mss2sql(Database migration and synchronization tools)
● DB2DB(深圳市米软科技有限公司 - DB2DB异构数据库转换) 

下面省略四种工具比较的过程。详细比较内容可查看下面的链接。

各种主流 SQLServer 迁移到 MySQL 工具对比 - 青出于蓝 - 博客园

我使用的是DB2DB这个是国产的软件,需要付费使用,试用版可传输五万条数据。

然后SQLyog 软件可以保证数据的完整性,但是速度太慢了,

Navicat 数据完整性太差,而且sqlserver 转MySQL 主键自增会消失。

二,DB2DB 使用

 速度还是很快的,但是我使用过程中发现了一个问题。

  源数据库里有51张表,但是迁移到目标数据库中只有45张表,这就说明迁移过程有缺失。

https://download.csdn/download/qq_41169544/85845065https://download.csdn/download/qq_41169544/85845065

2.1 迁移出错后的报错日志。

        

 就在ConverLog.txt 文件内有报错日志。

 创建失败的表有六张,加上目标数据库的45张表,就是51张,可以对上了。

下面还有元数据表中数据条数和目标数据表中数据条数不同的表。

有了这个信息,我们可以对目标数据库的问题做补丁。

三,补齐出现问题的表

        目前我出现问题的表较少,所以使用SQLyog 来选中源数据库中的那几个有问题的表。然后等待就可以了。

不过出现了一个问题。

        问题

ERROR: 2006, MySQL server has gone away

       原因

        有较长的sql 执行,导致出现了这个错误。

        解决

        扩大这个字段的值。

set global max_allowed_packet=1024*1024*16*10;

        对于这个问题,网上有很多的方法。只不过这个解决办法适用于我。如果大家有这个问题,可能解决办法不止这一个,可以上网搜搜

更多推荐

SQLServer 数据 迁移转到Mysql 中