SQL Server 迁移到 MySQL 的方法

0    147    1

Tags:

👉 本文共约7425个字,系统预计阅读时间或需28分钟。

(一) 使用工具SQLyog、Navicat、MySQL Workbench或MSSQL2SQL

若是少量的表数据迁移,那么可以使用SQLyog、Navicat、MySQL Workbench或MSSQL2SQL等工具直接进行迁移。

Navicate提供了数据传输的功能,可以作为中间操作节点,将一个数据库复制到另一个库。操作简单,常规界面选择要同步的库和表,高级界面去掉创建索引、勾上遇到错误继续、其他基本默认即可。完成后注意看日志,如果有报错没有复制数据,请重新同步一下这些表,并在高级里勾上使用完整插入语句,这样我们在日志里,可以看到SQL语句,手动执行插入和调试错误即可。有表没同步,请手动建表。

MySQL Workbench提供了Migration Wizard(数据库迁移)功能,具体操作过程可以参考: https://dev.mysql.com/doc/workbench/en/wb-migration-wizard-connection.html

对于SQL Server的存储过程、函数和触发器等对象,需要自己手工进行改写,并充分测试才能进行迁移,否则迁移完成后会出现很多未知的问题。

一、原则:

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

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

二、方法:

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 Workbench

SQL Server 迁移到 MySQL 的方法

Overview界面点击start…


连接源数据库

红框内是需要根据修改的地方,第三个红框是自己数据库服务器的名字

SQL Server 迁移到 MySQL 的方法


目标选择

目标是包含迁移数据的 MySQL 数据库。选择现有的 MySQL Workbench 连接,或从下拉列表中选择 Manage Stored Connections 以创建新的 MySQL 连接。

SQL Server 迁移到 MySQL 的方法


点击next后经过一段读条获得

SQL Server 迁移到 MySQL 的方法


选择需要转移的数据库

SQL Server 迁移到 MySQL 的方法


接下来就一直next就可以了

中途存在warning的界面不需要在意,跟着next就行,总体没有问题:not found

SQL Server 迁移到 MySQL 的方法



如果我们已经基于SQL Server进行了开发,并且具有很多基础的数据库数据了,那么我们可以利用SQL Server导出到MySQL数据库中,这种是我们常见的一种开发方式,毕竟基于SQLServer数据库开发起来会比较快速一些。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
SQL Server 迁移到 MySQL 的方法后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部