Vertica用のODBC接続文字列の形式を知っている人はいますか?
質問
私は次のことを使用しています:
DRIVER={Vertica ODBC Driver 4.1};
SERVER=lnxtabdb01.xxxx.com;
PORT=5433;
DATABASE=vertica;
USER=dbadmin;
PASSWORD=vertica;
OPTION=3;
このエラーが発生しているので、他の可能な問題を確認する前に、接続文字列がクールであることを確認したかっただけです。
エラー:
EnvironmentError: System.Data.Odbc.OdbcException (0x80131937): ERROR [28000] FATAL: no Vertica user name specified in startup packet
更新:今のところ、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;
今、私はこれを取得しています:
EnvironmentError: System.Data.Odbc.OdbcException (0x80131937): ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
解決
私も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
他のヒント
受け入れられた答えは、めまいとつながる方法を説明しています ODBC driver
システムを使用します DSN
. 。接続文字列のみを使用して接続して、ドライバーに対する接続を直接構成することができます。次の接続文字列パターンは、 Vertica ODBC Client Driver v6.1.2
:
Driver=Vertica;Server=MyVerticaServer;Port=5433;Database=MyVerticaDB;UID=foo;PWD=bar
ポートはオプションです:
Driver=Vertica;Server=MyVerticaServer;Database=MyVerticaDB;UID=foo;PWD=bar
または、あなたが私のように.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);
以下を含む接続文字列を使用して、データソース名(DSN)を構成/指定せずにVertica ODBCデータソースに接続できます。
ウィンドウズ:
Driver=Vertica ODBC Driver 4.1;Servername=ホスト名;Port=5433;Database=めまい;UserName=dbadmin;Password=sekret
Linux/unix
Driver=Vertica;Servername=ホスト名;Port=5433;Database=めまい;UserName=dbadmin;Password=sekret
各イタリック体を交換します 価値
あなたの環境に適したものと。 (注: name=価値
接続文字列のペア 思われる ケースに敏感であること。)
見たことがありますか http://www.connectionstrings.com/?特にVertica DBがリストされていませんが、Verticaに十分に類似している可能性のある他の数十のデータベースタイプがあります。
ODBCを使用するとき、私は常にWindowsを使用してDSNをセットアップしていました。ただし、私の唯一の提案であり、これはVerticaのさまざまな種類の問題に対する一般的な提案であり、PostgreSQLのODBC形式を試すことです。
ほとんどすべてのフードではないものはすべて、PostgreSQL、特にSQLの構文と関数に基づいています。だから私は前述の人に行きます http://www.connectionstrings.com ただし、PostgreSQLが行うように調べてください。
わかりました、私はVerticaのドキュメントを検索していますが、DSNを作成せずにODBCと接続する方法は見当たりません。 JDBCは別の問題のようです。それを行う方法があれば、私はそれを見ていません。
問題は、システムが接続文字列をVerticaドライバーによって処理する必要があることをシステムが知らないということです(ドライバーがいると仮定して)。 DSNにはすでに指定されているので、それが機能する理由です(私の教育を受けた推測)。
これは彼らがJDBCに与える例です:
「JDBC:Vertica:// server:port/db?user = username&password = password&ssl = true "
JDBC接続文字列は、Verticaを使用する必要があることをコードに知らせるようです。
ODBCに関する関連文書(フォーマットを許してください)の一部を投稿させてください。
DSNパラメーター
次のテーブルのパラメーターは、すべてのユーザーおよびシステムDSNエントリに一般的です。提供される例は、Windowsクライアント用です。
DSNパラメーターを編集するには:
* UNIX and Linux users can edit the odbc.ini file. (See Creating an ODBC DSN for Linux and Solaris Clients.) The location of this file is specific to the driver manager.
* Windows users can edit the DSN parameters directly by opening the DSN entry in the Windows registry (for example, at HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\vmartdb). However, the Vertica-preferred method is to follow the steps in Creating an ODBC DSN for Windows Clients.
* Parameters can be set while making the connection using SQLDriverConnect().
sqlRet = SQLDriverConnect(sql_hDBC, 0, (SQLCHAR*)"DSN=VerticaSQL;BinaryDataTransfer=1",
SQL_NTS, szDNS, 1024,&nSize, SQL_DRIVER_NOPROMPT);
Note: In the connection string ';' is a reserved symbol. If you need to set multiple parameters as part of ConnSettings parameter use '%3B' in place of ';'. Also use '+' instead of spaces.
For Example:
sqlRet = SQLDriverConnect(sql_hDBC, 0, (SQLCHAR*)"DSN=VerticaSQL;BinaryDataTransfer=1;ConnSettings=
set+search_path+to+a,b,c%3 Bset+locale=ch;SSLMode=prefer", SQL_NTS,
szDNS, 1024,&nSize, SQL_DRIVER_NOPROMPT);
* Parameters can also be set and retrieved after the connection has been made using SQLConnect(). Parameters can be set and retrieved using SQLSetConnectAttr(),SQLSetStmtAttr(), SQLGetConnectAttr() and SQLGetStmtAttr() API calls.