如何解决“加载翻译库时出错”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.ini
和UnicodeTranslationOption=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 SQLSTATE [01000]错误如何解决?