ODBC连接字符串问题

时间:2010-04-03 00:14:53

标签: sql mysql database odbc

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

db是本地的(但我在虚拟机上有一个镜像),所以我试图使用connectionstring:

  

DSN = MonetDB宿主=塔贝尔

其中TARBELL是我的电脑名称。但是,它没有连接。但是,这个字符串确实:

  

DSN = MonetDB宿主=本地主机

一样
  

DSN = MonetDB

任何人都能解释一下吗?我完全失去了。

我取下了防火墙(至少在我搞清楚之前),所以这不是问题。

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

非常感谢, 布雷特

4 个答案:

答案 0 :(得分:2)

我可以推荐connectionstrings.com,了解所有受支持的ADO.NET提供程序支持的语法的详细信息。

答案 1 :(得分: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,而localhost解析为始终指向本地计算机的特殊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从以下位置读取配置选项:

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

有关更多信息,请参阅MySQL manual pages

答案 2 :(得分:1)

我想在这里发布一个答案,因为我在搜索windows monetdb连接字符串时发现了这个问题。这是我正在使用的conn字符串,适用于monetdb 5:

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

答案 3 :(得分:0)

我从未见过DSN类型连接字符串的“host”参数。 DSN与用户,系统或文件一起存储。您在此处引用DSN的方式,可以存储在您的用户帐户下,也可以存储在系统中。使用DSN,有关要使用的服务器和驱动程序的所有凭据和信息都存储在DSN中。如果你想控制这些参数,你应该考虑一个DSN - 更少的连接字符串,如下所示:

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