2010-04-03 174 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