2016-02-19 32 views
0

我沒有權限編輯系統範圍的odbc.ini文件,因此我正在尋找替代方法來指定針對Vertica的連接參數。通過pyodbc在RHEL6上無odbc.ini連接到Vertica數據庫

我已將所需的庫解壓到某個位置,並試圖從我的「自定義」配置文件創建連接字符串。

當使用pyodbc.connect時,是否可以顯式指定驅動程序的路徑(以及任何其他必要的參數)?

實施例意圖(失敗與下面的錯誤):

conn = pyodbc.connect("DRIVER=path/to/libverticaodbc.so;...") 

錯誤:

pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)') 

另外,有在使用的odbc.ini其他文件比的那些另一種選擇的/ etc/,例如通過設置一個環境變量?

+0

OK,我發現我可以設置ENV變量ODBCINI和ODBCSYSINI,所以也會給你一個嘗試。 但我仍然對原始問題的答案感興趣。 參考:http://gemfirexd.docs.pivotal.io/1.3.0/userguide/developers_guide/topics/odbc/install_config_odbc.html – dbu

+0

順便說一下,這裏是一個適當的連接字符串:'cnxn = pyodbc.connect('DRIVER = {Vertica}; SERVER = 192.168.123.456; PORT = 1433; DATABASE = yourdb; UID = your_user; PWD = your_pw;')'然後需要將Vertica添加到您的主目錄中的'.odbcinst.ini',因爲您可以不能訪問系統範圍內的驅動程序。 – FlipperPA

回答

1

您可以將一個名爲.odbc.ini的文件放在您的主目錄中,該文件將用於用戶特定的ODBC設置。

http://www.unixodbc.org/odbcinst.html

+0

謝謝,但我不想修改用戶的主目錄,因爲此解決方案應該是多用戶支持的,並且不會影響任何其他環境參數。 (例如,如果用戶在他/她的主目錄中已經有另一個.odbc.ini文件會怎麼樣?) – dbu

2

我建議避免使用ODBC驅動程序連接到Vertica的。對於蟒蛇 Vertica的釋放本地驅動程序,請參見附上完整的細節和例子:

https://github.com/uber/vertica-python

我希望你會發現它我們全

感謝

+0

謝謝,但是 1)我更喜歡不依賴於測試階段的庫 2)它不是「由Vertica發佈」據我所見 – dbu