是否有任何免费的解决方案可以自动将数据库从MySQL迁移到“正常工作”的SQL Server服务器?
我一整天都在尝试这个简单(至少我是这么认为)的任务。我试过了:
预览数据不可能 检索。附加信息: 错误[42000] [MySQL] [ODBC 5.1 驱动程序]的[mysqld-45年5月1日社区]你 您的SQL语法有错误; 检查对应的手册 您的MySQL服务器版本 正确的语法使用附近 第1行的'“table_name”'(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)
答案 0 :(得分:3)
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注册才能下载许可证文件。 但它可以免费供所有人使用。
答案 1 :(得分:1)
现在这已经很老了,但如果你使用MySQL Connector NET并在连接字符串中设置SQL Server Mode = true,这将解决你的错误。
答案 2 :(得分:1)
最近,我已成功将 MySQL数据库迁移到MSSQL数据库。以下是详细步骤:
操作系统:带有SQL Server标准的AWS Microsoft Windows Server 2012 R2
使用的工具:
<强> 2。在AWS控制台ec2实例列表中,右键单击Windows服务器并选择connect。你会在下面看到类似的屏幕。
第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位):
<强> 7。打开SQL Server 2014 Management Studio SQL Developer并使用Windows身份验证进行连接。
<强> 8。打开Microsoft SQL Server迁移助手:有关详细信息,请访问此链接:https://blogs.msdn.microsoft.com/ssma/2011/02/07/mysql-to-sql-server-migration-how-to-use-ssma/
<强> 8。您可能在此处列出了一些问题。请详细阅读我编写详细决议的地方。 MySql 5.6 to MSSql server 2014 migration : ExecuteReader requires an open and available Connection
答案 3 :(得分:0)
恐怕没有简单的解决办法。 SQL中使用的SQL和SQL Server 200X中使用的T-SQL是SQL的不同方言。它不仅简单地改变说“auto_increment”到“identity”,而且保留了产生问题的单词。 例如
CREATE TABLE test (
user varchar(50)
)
将在MySQL中运行并在SQL Server 2008中失败。 长话短说 - 不幸的是,你需要手工完成。
答案 4 :(得分:0)
答案 5 :(得分:0)
关于这个错误42000有类似的问题,对我来说,我发现将MySQL全局模式设置为ansi_quotes会解决它:
set global sql_mode=ansi_quotes;
答案 6 :(得分:0)
有商业解决方案,但不是免费解决方案。根据数据库的复杂性,为目标方言重写SQL可能是一项非常简单的任务 - 或者是一项非常困难的任务。 重写CREATE TABLE语句永远不会很难,它可以手工完成,没有任何意外。程序,功能和触发器都存在问题。