我正在运行一个 MariaDB Galera 集群,并试图从第一个节点上的 MariaDB 中访问 MSSQL。我过去在 SLES 12 SP2 上做过这个,这次我试图在 RHEL 7.3 上做同样的事情。
不幸的是,MariaDB 在尝试将 MSSQL 表映射到现有(但为空)数据库时会显示“未知存储引擎‘连接’”。我有点困惑,因为引擎存在并已加载。所有必需的包/库都安装并放置在文件系统中。
错误
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 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 来解决此问题