1

我想在运行 Mac OS X 的本地机器上使用 Python 进行开发,并连接到我网络中的 Vertica 数据库。

我下载了 Vertica Mac 驱动程序并按照说明进行设置。使用 iODBC 进行测试时,我得到:

$ iodbctest
iODBC Demonstration program
This program shows an interactive SQL processor
Driver Manager: 03.52.0607.1008

Enter ODBC connect string (? shows list): ?

DSN                              | Driver                                  
------------------------------------------------------------------------------
VerticaDSN                       | Vertica                                 

Enter ODBC connect string (? shows list): VerticaDSN
1: SQLDriverConnect = [DSI] The error message InvalidConnStr could not be found in the       en-US locale. Check that /en-US/ODBCMessages.xml exists. (-1) SQLSTATE=HY000

使用 unixODBC 进行测试时,出现不同的错误:

    $ isql -v VerticaDSN user pw 
[S1000][unixODBC][DSI] The error message NoSQLGetPrivateProfileString could not be found in the en-US locale. Check that /en-US/ODBCMessages.xml exists.
[ISQL]ERROR: Could not SQLConnect

后者应该是由于缺少 vertica.ini 造成的,但我确实添加了 vertica.ini 并将其目录导出到 VERTICAINI 环境变量。这是我的 vertica.ini 的样子:

[Driver]
DriverManagerEncoding=UTF-32
ODBCInstLib=/usr/lib/libiodbc.2.dylib
ErrorMessagesPath=/Users/rmedri/Library/ODBC/vertica/lib64
LogLevel=4
LogPath=/Users/rmedri

这是我的 odbc.ini(在 ~/Library/ODBC/ 中):

[ODBC Data Sources]
VerticaDSN = Vertica    
[VerticaDSN]
Driver = /Users/rmedri/Library/ODBC/vertica/lib64/libverticaodbc.dylib
Database = vbit
Servername = vertica-prod.<xxxx>.<xxxx>.com
UID = user
PWD = pw
Port = 5433

我已经花了几个小时在这上面,我很茫然。感谢您提供任何指导,包括从 Mac OS X 上运行的 Python 连接到 Vertica 的替代方法。

4

1 回答 1

1

我知道这对我们来说有点反复试验,但我们最终需要:

DriverManagerEncoding=UTF-16

而不是 vertica.ini 中的 UTF-32。

于 2013-02-05T08:06:50.690 回答