2010-04-03 94 views
1

我在通过ODBC连接到我的数据库时遇到了很大的麻烦。ODBC连接字符串问题

的分贝是本地的(但我有一个虚拟机上的反射镜),所以我试图使用ConnectionString:

DSN = MonetDB宿主=塔贝尔

其中塔贝尔是我电脑的名字。但是,它不连接。但是,这串作用:

DSN = MonetDB;主机=本地主机

一样

DSN = MonetDB

任何人都可以解释一下吗?我完全丧失了。

我已经取消了我的防火墙(至少在我弄明白了的情况下),所以这不成问题。

我最终希望将TARBELL更改为运行另一个数据库实例的镜像虚拟机。

非常感谢, 布雷特

+0

如果让我打赌猜测,我要说的是,主机条目是指在其上DSN已经建立,而不是机器DSN指向的服务器。 – Thomas 2010-04-03 00:22:53

回答

0

我从来没有见过一个DSN型连接字符串“主机”参数。 DSN要么与用户,系统一起存储,要么作为文件存储。您在这里引用您的DSN的方式,它可以存储在您的用户帐户或系统下。使用DSN,有关要使用哪个服务器和驱动程序的所有凭据和信息都存储在DSN中。如果您想对这些参数的控制,你应该考虑DSN稀少的连接字符串,像这样:

"Driver={Mysql}; Server=[server_name];Port=[port_number]; Database=[database_name];UID=[username]; PWD=[password]" 
1

DNS通常以不同方式解决TARBALLlocalhost。你可以用ping看到:

c:\>ping tarball 
Pinging tarball [192.168.1.99] with 32 bytes of data: 
       ^^^^^^^^^^^^ 

c:\>ping localhost 
Pinging tarball [127.0.0.1] with 32 bytes of data: 
       ^^^^^^^^^ 

计算机名解析为外部IP,而本地主机解析为IP专用127.0.0.1始终指向在本地机器。一些MySQL的安装仅在本地主机上进行监听,所以如果指定了计算机名称,它们将停止监听。

这种行为是使用bind-address选项配置:

--bind-address=127.0.0.1 

或同等学历(MySQL也使用DNS来解析主机名):

--bind-address=localhost 

为了让服务器监听所有接口上,指定:

--bind-address=0.0.0.0 

在Windows上,MySQL读取配置选项m:

WINDIR\my.ini, WINDIR\my.cnf 
C:\my.ini, C:\my.cnf 
INSTALLDIR\my.ini, INSTALLDIR\my.cnf 

查看MySQL manual pages了解更多信息。

1

想通过这里发布一个答案,因为我找到这个时候搜索一个Windows MONETDB连接字符串。这是我使用的是康涅狄格州串并工作monetdb 5:

DRIVER=MonetDB ODBC Driver;PORT=50000;HOST=<your host>;DATABASE=<your db>;UID=monetdb;PWD=monetdb 
+0

谢谢!,当你设置连接字符串失败时,错误是**驱动程序的SQLSetConnectAtt失败**一些条目讨论安装x32和x64 odbc的驱动程序版本(当然是在x64上)并且没有找到更多条目。 – GBrian 2014-12-29 06:15:06