将数据和架构从 MySQL 迁移到 SQL Server

Posted

技术标签:

【中文标题】将数据和架构从 MySQL 迁移到 SQL Server【英文标题】:Migrate Data and Schema from MySQL to SQL Server 【发布时间】:2011-01-29 07:56:10 【问题描述】:

是否有任何免费的解决方案可以自动将数据库从 MySQL 迁移到“正常工作”的 SQL Server Server?

我整天都在尝试这个简单的(至少我是这么认为的)任务。我试过了:

    SQL Server Management Studio 的导入数据功能 创建一个空数据库 任务 -> 导入数据... 用于 Odbc 的 .NET Framework 数据提供程序 有效的 DSN(已验证连接) 从一个或多个表或视图复制数据 检查 1 个非常简单的表 点击预览 获取错误:

无法预览数据 取回。附加信息: 错误 [42000] [mysql][ODBC 5.1 驱动][mysqld-5.1.45-community]你 您的 SQL 语法有错误; 检查对应的手册 您的 MySQL 服务器版本 在附近使用的正确语法 '"table_name"' 在第 1 行 (myodbc5.dll)

如果我完成向导的其余部分并执行操作,则会发生类似的错误。失败的步骤是“设置源连接”错误是指检索列信息,然后列出上述错误。当我修改列映射时它可以很好地检索列信息所以我真的不知道问题是什么。

我也尝试过使用各种 MySql 工具来输出 SQL Server 可以理解但没有成功的 ddl 语句。

我已经尝试使用 MySQL v5.1.11 到 SQL Server 2005 和 MySQL v5.1.45 到 SQL Server 2008(分别使用 ODBC 驱动程序 3.51.27.00 和 5.01.06.00)

【问题讨论】:

Migrate from MySql to Sql server 2008的可能重复 【参考方案1】:

恐怕没有简单的解决方案。 MySQL 中使用的 SQL 和 SQL Server 200X 中使用的 T-SQL 是 SQL 的不同方言。不仅将“auto_increment”简单地更改为“identity”,而且保留字也会产生问题。 例如

   CREATE TABLE test (
 user varchar(50)
  )

将在 MySQL 中工作,但在 SQL Server 2008 中失败。 长话短说 - 不幸的是,您需要手动完成。

【讨论】:

【参考方案2】:
    将文件从 MySQL 导出为 CSV 文件。 从 MySQL 中导出表的创建语句 哭。 3a。在 SQL Server 中禁用外键检查 调整 SQLserver 中的 create 语句,直到它们正常工作。 将 CSV 文件导入 MySQL。 5a。在 SQL Server 中启用外键检查。

另请参阅以下答案: migrate-from-mysql-to-sql-server-2008

【讨论】:

【参考方案3】:

关于这个错误 42000 有类似的问题,对我来说,我发现将 MySQL 全局模式设置为 ansi_quotes 可以解决它:

set global sql_mode=ansi_quotes;

【讨论】:

【参考方案4】:

Microsoft 提供了两个免费工具包。

    适用于 MySQL v1.0 的 Microsoft SQL Server 迁移助手 http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=14280

    适用于 MySQL v5.1 的 Microsoft SQL Server 迁移助手 http://www.microsoft.com/download/en/details.aspx?id=26712

我只使用了第二个,它对我有用,没有任何故障。 它需要在 Microsoft 注册才能下载许可证文件。 但它可供所有人免费使用。

【讨论】:

那些 URL 看起来被破坏了 - 试试 https://www.microsoft.com/en-us/download/details.aspx?id=28764【参考方案5】:

这已经很老了,但是如果您使用 MySQL Connector NET 并在连接字符串中设置SQL Server Mode = true,这将解决您的错误。

【讨论】:

【参考方案6】:

有商业解决方案,但没有免费解决方案。根据数据库的复杂性,为目标方言重写 SQL 可能是一项微不足道的任务,也可能是一项非常困难的任务。 重写 CREATE TABLE 语句从来都不是难事,它可以毫无意外地手动完成。过程、函数和触发器都有问题。

【讨论】:

【参考方案7】:

最近,我成功将MySQL数据库迁移到MSSQL数据库。以下是详细步骤:

操作系统: AWS Microsoft Windows Server 2012 R2 with SQL Server Standard

使用的工具:

SQL Server 2014 Management Studio SQL Developer, 适用于 MySQL 的 Microsoft SQL Server 迁移助手 v6.0.1, 远程桌面客户端,以及 第三方 MySql ODBC 驱动程序 5.1.13

1.设置 AWS Windows Server

2。从 AWS 控制台 ec2 实例列表中,右键单击 windows 服务器并选择连接。您会在下面看到类似的屏幕。

3.单击远程桌面连接所需的“获取密码”按钮[#4],然后按照说明进行操作。

4.默认情况下,使用 Ubuntu 本地计算机中可用的远程桌面客户端连接到该 EC2[#1] 实例。使用 #2 中的凭据。

5.使用远程客户端连接后,您应该能够访问远程 MSSQL 服务器。安装以下工具。

安装 Chrome:由于 Internet Explorer 具有一定的安全性,请安装 chrome。

为 MySQL 安装 Microsoft SQL Server 迁移助手 v6.0.1 https://www.microsoft.com/en-us/download/details.aspx?id=51218

安装第三方 MySql ODBC 驱动程序 5.1.13 https://dev.mysql.com/downloads/connector/odbc/5.1.html

6.配置 ODBC 数据源(64 位):

打开管理工具 → 单击 ODBC 数据源(64 位)和 按照步骤连接到 MySQL 数据库。

7.打开 SQL Server 2014 Management Studio SQL Developer 并使用 Windows 身份验证进行连接。

为 MySql 迁移创建目标 MSSql 数据库。

8.打开 Microsoft SQL Server 迁移助手: 详情请访问此链接:https://blogs.msdn.microsoft.com/ssma/2011/02/07/mysql-to-sql-server-migration-how-to-use-ssma/

创建新项目 连接到 MySql 连接到 MSSql 转换架构 迁移数据

8.您可能在此处列出了一些问题。请详细阅读我写详细决议的地方。 MySql 5.6 to MSSql server 2014 migration : ExecuteReader requires an open and available Connection

【讨论】:

以上是关于将数据和架构从 MySQL 迁移到 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章

从mysql迁移到sql server

如何将数据从Oracle数据库实时复制到MYSQL

将数据从 MySQL 迁移到 SQL Server

从 SQL Azure 迁移到 SQL Server

(转)如何将数据库从SQL Server迁移到MySQL

如何将数据库从 Filemaker 迁移到 Mysql?