我曾尝试在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服务器所需的内容?
答案 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
来指定主机名,而不是Servername
或Server
,如Postgres或MySQL,例如。