尝试从Mac OS X连接到Vertica时无效的连接字符串

时间:2013-02-02 08:18:50

标签: python macos odbc unixodbc vertica

我想从运行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的其他方法。

1 个答案:

答案 0 :(得分:1)

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

DriverManagerEncoding=UTF-16

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