2014-12-04 45 views
0

在Linux客戶端上安裝unixODBC和Netezza驅動程序並根據文檔配置〜/ .odbcinst.ini和〜/ .odbc.ini數據源之後,試圖通過某些工具連接到Netezza PureData倉庫可能會產生錯誤類似於:如何解決「加載轉換庫時發生錯誤」Linux ODBC連接問題?

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

例如,這是通過在RHEL7框DBAPI連接由Python SQLAlchemy的庫輸出(雖然已經從其他分佈和其他工具報告)。

有誰知道發生了什麼以及如何正確解決它的細節?

回答

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 
1

一個工作,解決這個問題的方法,是將以下幾行添加到您的〜/ .odbc.ini文件的特定數據源部件:

TranslationDLL= 
TranslationName= 
TranslationOption= 

我不知道還有什麼其他這可能會產生影響(例如,非英文錯誤消息或使用不尋常的字符編碼)。

1

在您的odbc.ini中將UnicodeTranslationOption設置爲UTF16而不是UTF8。確保它在由'odbcinst -j'識別的odbc.ini中都有該設置,並且在主目錄中還有一個名爲'odbc.ini'的備用副本。最新的netezza文件似乎讀取的配置,而不是一個隱藏的文件'.odbc.ini'