MariaDB 10.2.9:尝试映射 MSSQL 表时未找到存储引擎“CONNECT”

MariaDB 10.2.9:尝试映射 MSSQL 表时未找到存储引擎“CONNECT”

我正在运行 MariaDB Galera 集群,并尝试从第一个节点上的 MariaDB 内部访问 MSSQL。我以前在 SLES 12 SP2 上做过这件事,这次我尝试在 RHEL 7.3 上做同样的事情。

不幸的是,当尝试将 MSSQL 表映射到现有(但为空)数据库时,MariaDB 提示“未知存储引擎‘连接’”。我有点困惑,因为引擎存在并且已加载。所有必需的包/库都已安装并放置在文件系统中。

错误

MariaDB (database)> create table test123 ENGINE=connect table_type=ODBC tabname='123' Connection='Driver=123;Description=test;Server=someserver;Instance=someinstance;Port=1433;Database=TEST;PWD=SECRET;UID=some_user';
ERROR 1286 (42000): Unknown storage engine 'CONNECT'

运行命令“show engines;”和“show plugins;”时,我可以看到 CONNECT 引擎和插件 ha_connect.so 已加载。

当从命令行使用“isql”时,我可以成功连接到 MSSQL。因此 odbcinst.ini 和 odbc.ini 设置正确。

我尝试过

我查阅了几个关于如何通过 ODBC 从 MariaDB 访问 MSSQL 的教程,但没有发现我遗漏或做错的地方。我还比较了旧设置 (SLES) 和新设置 (RHEL),但没有发现任何相关差异。

我还在“创建表...”期间跟踪了 MariaDB,但它只说:

57079 access("./database/test123.frm", F_OK) = -1 ENOENT (No such file or directory)
57079 sendto(119, ")\0\0\1\377\6\5#42000Unknown storage engine 'CONNECT'", 45, MSG_DONTWAIT, NULL, 0) = 45

抱歉,我在这里混淆了一些东西,但不幸的是,由于我连接到相关服务器的方式的性质,我无法从 CLI 复制粘贴。

我的环境

  • RHEL 7.3
  • MariaDB 10.2.9
  • MariaDB 连接引擎 10.2.9
  • unixODBC-utf16 2.3.1,msodbcsql 13.1.0

我需要什么帮助

  • 理解 MariaDB 为何声称存储引擎“CONNECT”不存在
  • 通过成功将 MSSQL 表映射到 MariaDB 解决了此问题

答案1

别担心。经过几个小时的研究,我发现一个博客声称 msodbc 驱动程序与此特定的 MariaDB-connect-engine 版本不兼容。不幸的是,我没有将相关博客加入书签 :(

然而,在 SLES 12 上我使用了略有不同的版本,并且它开箱即用。

相关内容