首页 > 解决方案 > 从 MySQL (MariaDB) 迁移到 SQL (Azure)

问题描述

我在这个过程中遇到了麻烦,希望得到一些指导!

当前的源数据库是一个 MariaDB(类似于 MySQL)。我有成功连接的 ODBC 驱动程序。

我已安装 Microsoft SQL Server Management (SSMS) 17,并连接到我的 Azure SQL 数据库。

我找到了可以在 SSMS 中创建链接服务器的解决方案 - 但由于某种原因,我在我的对象资源管理器中看不到这个?

我尝试使用 SQL Server 2017 导入和导出工具。选择源为 .Net Framework Data Provider for ODBC,并输入 DSN 的名称。

选择目标作为 SQL Server Native Client(也尝试过 Microsoft OLE DB Provider for SQL Server)。

抛出第一个警告(不确定这是否是一个问题?) [源信息] 找不到映射文件以将提供程序类型映射到 SSIS 类型

还有大错...

TITLE: SQL Server 导入和导出向导

无法连接源组件。

错误 0xc0047062:源 - tblBookings [1]:System.Data.Odbc.OdbcException (0x80131937):错误 [42000] [ma-3.0.6][5.5.59-MariaDB]您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在 System.Data.Odbc.OdbcCommand 的 System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode) 的第 1 行的“tblBookings”附近使用正确的语法System.Data.Odbc.OdbcCommand.ExecuteReaderObject 中的 .ExecuteReaderObject(CommandBehavior 行为,String 方法,Boolean needReader,Object[] methodArguments,SQL_API odbcApiMethod)(CommandBehavior 行为,String 方法,Boolean needReader)在 System.Data.Odbc.OdbcCommand.ExecuteReader (CommandBehavior 行为)
在 System.Data.Odbc.OdbcCommand.ExecuteDbDataReader(CommandBehavior 行为) 在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior 行为) 在 Microsoft.SqlServer.Dts.Pipeline.DataReaderSourceAdapter.ReinitializeMetaData() 在 Microsoft .SqlServer.Dts.Pipeline.ManagedComponentHost.HostReinitializeMetaData(IDTSManagedComponentWrapper100 包装器)


附加信息:

ERROR [42000] [ma-3.0.6][5.5.59-MariaDB]您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行 (maodbc.dll) 的“tblBookings”附近使用正确的语法


按钮:确定 ------------------*

也很高兴尝试以另一种方式进行此迁移。非常感谢任何提示。

标签: mysqlsql-serverssismariadbssms

解决方案


尝试以 root 用户身份执行:

Set global sql_mode=ansi_quotes

推荐阅读