我在通过ODBC连接到我的数据库时遇到了很大的麻烦。
db是本地的(但我在虚拟机上有一个镜像),所以我试图使用connectionstring:
DSN = MonetDB宿主=塔贝尔
其中TARBELL是我的电脑名称。但是,它没有连接。但是,这个字符串确实:
DSN = MonetDB宿主=本地主机
和
一样DSN = MonetDB
任何人都能解释一下吗?我完全失去了。
我取下了防火墙(至少在我搞清楚之前),所以这不是问题。
我最终想要将TARBELL更改为运行另一个数据库实例的镜像虚拟机。
非常感谢, 布雷特
答案 0 :(得分:2)
我可以推荐connectionstrings.com,了解所有受支持的ADO.NET提供程序支持的语法的详细信息。
答案 1 :(得分:1)
DNS通常会以不同方式解析TARBALL
和localhost
。你可以看到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]"