有没有人知道vertica的odbc连接字符串的格式?

Ram*_*amy 9 odbc vertica

我正在使用以下内容:

DRIVER={Vertica ODBC Driver 4.1};
SERVER=lnxtabdb01.xxxx.com;
PORT=5433;
DATABASE=vertica;
USER=dbadmin;
PASSWORD=vertica;
OPTION=3;
Run Code Online (Sandbox Code Playgroud)

我收到此错误,我只想在检查其他可能的问题之前确保我的连接字符串很酷.

错误:

EnvironmentError: System.Data.Odbc.OdbcException (0x80131937): ERROR [28000] FATAL: no Vertica user name specified in startup packet
Run Code Online (Sandbox Code Playgroud)

更新:目前我只是在Windows Vista中使用我可以使用的系统数据源名称.但是我仍然想知道是否有odbc连接字符串,这样我就不必在每台将以这种方式连接到Vertica DB的机器上进行设置.

好吧,我尝试了一个postgresql连接字符串,如下所示:

Host=lnxtabdb01.xxxx.com;
Port=5433;
Database=vertica;
User ID=dbadmin;
Password=vertica;
Pooling=true;
OPTION=3;
Min Pool Size=0;
Max Pool Size=100;
Connection Lifetime=0;
Run Code Online (Sandbox Code Playgroud)

现在我得到这个:

EnvironmentError: System.Data.Odbc.OdbcException (0x80131937): ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
Run Code Online (Sandbox Code Playgroud)

Jon*_*n G 9

接受的答案描述了ODBC driver使用系统连接Vertica的方法DSN.可以仅使用连接字符串进行连接,以直接配置与驱动程序的连接.以下连接字符串模式已针对以下内容进行了测试Vertica ODBC Client Driver v6.1.2:

Driver=Vertica;Server=MyVerticaServer;Port=5433;Database=MyVerticaDB;UID=foo;PWD=bar
Run Code Online (Sandbox Code Playgroud)

端口是可选的:

Driver=Vertica;Server=MyVerticaServer;Database=MyVerticaDB;UID=foo;PWD=bar
Run Code Online (Sandbox Code Playgroud)

或者,如果你像我一样在.NET中这样做,你可以使用它来格式化必要参数的连接字符串:

var connectionString = string.Format(
            "Driver=Vertica;Server={0};{1}Database={2};UID={3};PWD={4}",
            server,
            port == null ? string.Empty : string.Format("Port={0};", port),
            database,
            username,
            password);
Run Code Online (Sandbox Code Playgroud)


Al *_*l W 5

没有DSN,我也没有看到任何使用ODBC的方法.这是我的linux工作站的DSN设置.

[VerticaDSN]
Description = VerticaDSN ODBC driver
Driver = /opt/vertica/lib64//libverticaodbc_unixodbc.so
Database = Retail
Servername = localhost
UserName = vertica
Password =
Port = 5433
Run Code Online (Sandbox Code Playgroud)