ODBC 连接 inceptor 配置过程常见问题

内容纲要

概要描述


本文就 ODBC 配置完成后连不上 inceptor 的常见问题进行收录归纳,ODBC 安装配置请参考文章 Linux ODBC 连接 Inceptor


详细说明


1. 根据手册编译安装 Driver Manager 时 make 命令报错:aclocal-1.11:command not found

该报错是因为没有装 automake,需要执行 yum install -y automake 先安装,装完后 必须 得重新解压 unixODBC 包再进行编译安装。

2. isql 连接测试报错:[ISQL]ERROR: Could not SQLConnect

通过加参数 isql -v 能看到如下错误:

[01000][unixODBC][Driver Manager]Can't open lib '/usr/local/lib64/libODBC4HiveServer2.so' : file not found

ldd /usr/local/lib64/libODBC4HiveServer2.so,能看到 libsasl2.so.2==>not found,可以通过如下软链接方式解决:

$ ln -sv /usr/lib64/libsasl2.so.3.0.0 /usr/lib64/libsasl2.so.2

3. isql 连接测试报错: SASL Other:No worthy mechd found, Segmentation faild

该报错可通过安装如下工具解决:

$ yum install cyrus-sasl-gssapi cyrus-sasl-plain -y

4. 配置文件都正确,但 isql 报 [Driver Manager]Data source name not found, and no default driver specified]

odbcinst -j 命令能发现打印的配置信息有问题,原因未知,可通过如下方式尝试解决(或加入用户环境变量,路径为安装时的 ODBC 时的实际路径,本例为 /etc)

export ODBCSYSINI="/etc"
export ODBCINI="/etc/odbc.ini"

5.isql 能成功,但是一些客户端工具(如 php)连接还是会返回第 2 点中的错误,ldd 命令检查其实还是有 libodbcinst.so.2 => not found

$ ln -sv /usr/local/lib/libodbcinst.so.2 /usr/lib64/libodbcinst.so.2

6.报错[08004][unixODBC] Failed to connect to DSN=xxx [ISQL]ERROR: Could not SQLConnect

[root@gts-spp-201~]# isql -v ldap
[08004][unixODBC] Failed to connect to DSN=ldap;DATABASE=default;DRIVER=Transwarp Inceptor ODBC Driver;FRAMED=0;HIVE=Hive Server 2;HOST=172.22.37.203;MECH=LDAP;PASSWORD=IDENTIFIER_KW_NULL;PORT=10000;USE_ESCAPE=true;USER=IDENTIFIER_KW_NULL;
[ISQL]ERROR: Could not SQLConnect

如果inceptor开启的LDAP 认证,必须在后面提供用户名和密码。

[root@gts-spp-201~]# isql -v ldap hive 123456
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+

7.密码正确,各种姿势都正确,依然6的报错:[08004][unixODBC] Failed to connect to DSN=xxx [ISQL]ERROR: Could not SQLConnect

[08004][unixODBC] Failed to connect to DSN=ldap;DATABASE=default;DRIVER=Transwarp Inceptor ODBC Driver;FRAMED=0;HIVE=Hive Server 2;HOST=172.22.37.203;MECH=LDAP;PASSWORD=12345690;PORT=10000;USE_ESCAPE=true;USER=hive;
[ISQL]ERROR: Could not SQLConnect

排查一下密码中是否有特殊字符 Special character restrictions of username and password in ODBC connection for Diamond and Platinum gateways

file

Tips:排查过程中,可以调整 /etc/log4cplus.properties (来自 /usr/local/inceptor) 里的日志级别来协助定位

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。