首页 > 代码库 > [MySQL] SqlServer 迁移到 MySQL 方法介绍

[MySQL] SqlServer 迁移到 MySQL 方法介绍

一、原则:

只迁移表结构和数据,存储过程、函数、触发器尽量自己改写,并充分测试。

迁移前,先设置好数据库的一些参数,比如默认存储引擎,默认编码等,方便后续导入。

 

二、方法:

1、使用MySQL Workbench

  MySQL Workbench提供了Migration Wizard(数据库迁移)功能,支持MSSQL的数据形式转换为MYSQL下的数据格式;

  具体参照这篇文章:http://mysqlworkbench.org/2012/07/migrating-from-ms-sql-server-to-mysql-using-workbench-migration-wizard/

  如果有Not enough memory to allocate insert buffer of size 1073741824,请行Google解决。可能是MySQL端max_allowed_packet、key_buffer_size大小设置的问题。

  博主的解决办法是,在windows机器新建一个MySQL数据库,作为中间导入库。然后再在两个MySQL库间同步数据。

 

注意:

  1)看日志文件wb.log的报错,复制结果以这个日志为准。

  2)source RMBMS 连接参数,Server填打开SSMS后,服务器属性后面那个名称(常规-名称)。


2、使用Navicat Premium -- 本人推荐

  Navicate 提供了数据传输的功能,可以作为中间操作节点,将一个数据库复制到另一个库。

  操作简单,常规界面选择要同步的库和表,高级界面去掉创建索引、勾上遇到错误继续、其他基本默认即可。

  完成后注意看日志,如果有报错没有复制数据,请重新同步一下这些表,并在高级里勾上使用完整插入语句,

  这样我们在日志里,可以看到SQL语句,手动执行插入和调试错误即可。有表没同步,请手动建表。


三、后续操作:

  1、手动改写存储过程、函数和触发器,并要经过程序充分测试检验。

  2、根据业务需求,添加合适的索引。

 

附:另外靠谱的两种方法:https://www.percona.com/blog/2016/06/23/migrate-from-ms-sql-server-to-mysql/

[MySQL] SqlServer 迁移到 MySQL 方法介绍