使用ODBC连接到MonetDB

时间:2015-09-03 21:42:19

标签: unixodbc monetdb

我曾尝试在Mac OS X 10.9和Debian 8上使用unixODBC(版本2.3.2)和MonetDB ODBC客户端(版本11.21.5),但无法在客户端计算机上使用WITH MEMBER [Measures].[ParameterCaption] AS [Qu].[Qu Hierarchy].CurrentMember.Member_Caption MEMBER [Measures].[ParameterValue] AS [Qu].[Qu Hierarchy].CurrentMember.UniqueName MEMBER [Measures].[ParameterLevel] AS [Qu].[Qu Hierarchy].CurrentMember.Level.Ordinal SELECT { [Measures].[ParameterCaption] ,[Measures].[ParameterValue] ,[Measures].[ParameterLevel] } ON COLUMNS ,NonEmpty ( Descendants ( [Qu].[Qu Hierarchy].[Domain] ,[Qu].[Qu Hierarchy].[Unit] ) ,StrToSet (@FirstParameter ,CONSTRAINED ) ) ON ROWS FROM [MyCube]; 通过ODBC连接在Debian 8上运行的MonetDB服务器,虽然从服务器机器上运行良好。

在客户端计算机上发出isql时,我收到以下错误消息:

  

[08001] [unixODBC] [MonetDB] [ODBC驱动程序11.21.5]客户端无法建立连接   [ISQL]错误:无法SQLConnect

这是我的isql -v voc文件:

.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 从客户端计算机和服务器计算机连接,并使用以下命令行:

mclient

服务器配置如下:

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

monetdbd get all testing/testDBfarm/

这里是否缺少让客户端通过ODBC连接到MonetDB服务器所需的内容?

1 个答案:

答案 0 :(得分:0)

isql(运行ODBCDEBUG=/tmp/odbclog isql test)的调试日志显示了问题:
MonetDB ODBC驱动程序忽略了配置文件中的Servername参数。

.odbc.ini:

  

Servername = LEFT OUT

日志:

  

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

非常不幸的是,大多数ODBC驱动程序使用不同的名称来指定服务器的主机名或IP地址:Servername,Host,甚至Server(参见:http://www.unixodbc.org/odbcinst.html

因此,对于MonetDB的ODBC驱动程序,我们需要使用Host来指定主机名,而不是ServernameServer,如Postgres或MySQL,例如。