目录
一,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张表,这就说明迁移过程有缺失。
2.1 迁移出错后的报错日志。
就在ConverLog.txt 文件内有报错日志。
创建失败的表有六张,加上目标数据库的45张表,就是51张,可以对上了。
下面还有元数据表中数据条数和目标数据表中数据条数不同的表。
有了这个信息,我们可以对目标数据库的问题做补丁。
三,补齐出现问题的表
目前我出现问题的表较少,所以使用SQLyog 来选中源数据库中的那几个有问题的表。然后等待就可以了。
不过出现了一个问题。
问题
ERROR: 2006, MySQL server has gone away
原因
有较长的sql 执行,导致出现了这个错误。
解决
扩大这个字段的值。
set global max_allowed_packet=1024*1024*16*10;
对于这个问题,网上有很多的方法。只不过这个解决办法适用于我。如果大家有这个问题,可能解决办法不止这一个,可以上网搜搜