2015-09-03 3 views
0

Я попытался использовать unixODBC (версия 2.3.2) и клиент MonetDB ODBC (версия 11.21.5) как на Mac OS X 10.9, так и на Debian 8, но не могу подключиться через ODBC с помощью isql на клиентских компьютерах на сервер MonetDB, работающий на Debian 8, хотя он отлично работает с серверной машиной.Подключение к MonetDB с использованием ODBC

При выдаче isql -v voc на клиентских машинах, которые я получаю следующее сообщение об ошибке:

[08001][unixODBC][MonetDB][ODBC Driver 11.21.5]Client unable to establish connection [ISQL]ERROR: Could not SQLConnect

Вот мой .odbc.ini файл:

[voc] 
Driver   = MonetDB 
Description  = MonetDB voc test database 
Servername  = <<left out>> 
Port   = 50000 
UserName  = monetdb 
Password  = monetdb 
Database  = voc 

и мой файл /opt/local/etc/odbcinst.ini:

[MonetDB] 
Description  = ODBC Driver for MonetDB SQL Server 
Driver   = /usr/local/monetdb/lib/libMonetODBC.so 
Setup   = /usr/local/monetdb/lib/libMonetODBCs.so 
FileUsage  = 1 

Интересно, что я могу подключить usin г mclient от клиентских машин и машина-сервер, а также с помощью следующей командной строки:

mclient -d voc -u monetdb -h <<left out>>

Сервер настроен следующим образом:

monetdbd get all testing/testDBfarm/

property   value 
hostname   <<left out>> 
dbfarm   testing/testDBfarm/ 
status   monetdbd[37007] 1.7 (Jul2015) is serving this dbfarm 
mserver   /usr/bin/mserver5 
logfile   testing/testDBfarm//merovingian.log 
pidfile   testing/testDBfarm//merovingian.pid 
sockdir   /tmp 
port    50000 
exittimeout  60 
forward   proxy 
discovery  true 
discoveryttl  600 
control   no 
passphrase  <unknown> 
mapisock   /tmp/.s.monetdb.50000 
controlsock  /tmp/.s.merovingian.50000 

Что я отсутствует здесь, что необходимо, чтобы клиенты могли подключаться к серверу MonetDB через ODBC?

ответ

0

отладки журнал ISQL (бег ODBCDEBUG=/tmp/odbclog isql test) выявили проблему:
Драйвер ODBC MonetDB игнорирует параметр ИмяСервера в моем файле конфигурации.

.odbc.ini:

Servername = LEFT OUT

Вход:

SQLConnect: DSN=voc UID=monetdb PWD=monetdb host=localhost port=50000 database=voc.

Это весьма печально, что большинство драйверов ODBC использовать другое имя для определения имени хоста сервера или IP-адреса: Имя_сервер, Host или даже Server (см.: http://www.unixodbc.org/odbcinst.html)

Таким образом, для драйвера ODBC MonetDB мы должны использовать Host для указания имени хоста вместо Servername или Server, что касается Postgres или MySQL, например.

Смежные вопросы