如何解决“加载转换库时出错”Linux ODBC连接问题?

时间:2014-12-04 21:32:03

标签: linux odbc netezza

在Linux客户端上安装unixODBC和Netezza驱动程序并根据文档配置〜/ .odbcinst.ini和〜/ .odbc.ini数据源后,尝试通过某些工具连接到Netezza PureData仓库可能会产生错误类似于:

(Error) ('HY000', '[HY000] [unixODBC]Error occurred while loading translation library (45) (SQLDriverConnect)')

例如,Python SQLAlchemy库通过RHEL7盒上的DBAPI连接输出(虽然已经从其他发行版和其他工具报告过)。

有谁知道发生了什么的细节以及如何正确解决它?

4 个答案:

答案 0 :(得分:1)

解决此问题的一种方法是将以下行添加到〜/ .odbc.ini文件的特定数据源部分:

TranslationDLL=
TranslationName=
TranslationOption=

我不知道其他可能带来的影响(例如非英语错误消息或使用不常见的字符编码)。

答案 1 :(得分:1)

在odbc.ini中将UnicodeTranslationOption设置为UTF16而不是UTF8。确保它在'odbcinst -j'识别的odbc.ini中以及主目录中名为'odbc.ini'的备用副本中具有该设置。最新的netezza文件似乎读取配置而不是隐藏文件'.odbc.ini'

答案 2 :(得分:1)

额外信息:我遇到了类似的错误消息。

原来我为/etc/odbcinst.ini驱动程序UnicodeTranslationOption=utf8设置了[NetezzaSQL]

还使用了错误的(32位)驱动程序。

使用/etc/odbcinst.ini修复:

[NetezzaSQL]
Driver          = /opt/netezza/lib64/libnzodbc.so
DebugLogging    = true
LogPath         = /tmp
Trace           = 0
TraceAutoStop   = 0
TraceFile       = /tmp/trace.log
UsageCount      = 1

答案 3 :(得分:0)

您也可以enable Netezza ODBC debug log找出详细的错误。在odbcinst.ini中,设置     DebugLogging = true