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

Posted

技术标签:

【中文标题】如何解决“加载翻译库时出错”Linux ODBC 连接问题?【英文标题】:How to resolve the "Error occurred while loading translation library" Linux ODBC connection issue? 【发布时间】:2014-12-04 21:32:03 【问题描述】:

在 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 连接输出的(尽管已从其他发行版和其他工具报告)。

有谁知道正在发生的事情的细节以及如何正确解决它?

【问题讨论】:

【参考方案1】:

额外信息:我遇到了与完全相同的错误消息类似的问题。

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

还使用了错误的(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

【讨论】:

【参考方案2】:

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

TranslationDLL=
TranslationName=
TranslationOption=

我不知道这样做可能会产生什么其他影响(例如关于非英语错误消息或使用不寻常的字符编码)。

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

【讨论】:

以上是关于如何解决“加载翻译库时出错”Linux ODBC 连接问题?的主要内容,如果未能解决你的问题,请参考以下文章

Linux下ODBC连接HGDB报Could not SQLConnect错解决方法

如何让 odbc 在 Linux 上使用 sqlite?

点燃odbc SQLSTATE [01000]错误如何解决?

使用静态 QT odbc 时如何解决链接问题

Linux Python 2.7 odbc连接到Progress Open Edge DB

linux平台配置odbc连接dm7达梦数据库