mysql - 从 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”附近使用正确的语法
按钮:确定 ------------------*
也很高兴尝试以另一种方式进行此迁移。非常感谢任何提示。
解决方案
尝试以 root 用户身份执行:
Set global sql_mode=ansi_quotes
推荐阅读
- typo3 - PHP 警告:count(): 参数必须是数组或实现 Countable 的对象
- c# - 同一个解决方案中有多个版本的项目?
- python - 彩色图像的 UNET 图像分割测试结果不正确
- c# - 如何动态访问所有孩子的?
- android - 在Android中使用Camera拍摄的图片中显示图片
- javascript - vuedraggable 句柄属性不起作用
- ruby-on-rails - 如何自定义路线?
- flutter - tabBar 中的选项卡是否有任何属性可以更改颤动中选项卡的文本颜色?
- php - 如果为真,则显示 php 数组项
- c# - 网络核心:找不到类型或命名空间名称“GlobalFilterCollection”