2010-11-01 94 views
1

首先關閉;我現在一直都是SO的熱心讀者。這是我的第一個問題。我很驚訝這將會與數據庫相關!請注意,我認爲問題可能在某種程度上與我的設置有關,因此我不確定您是否能夠幫助我,但我認爲我會給它一個機會!無法使用C#和Mono連接到MySQL數據庫

問題:

所以,我完全新的數據庫。對於Mac(OS X 10.6.4),我使用C#Mono(v2.6.7)和MonoDevelop(v2.4)。主要是因爲設置簡單,我想用XAMPP來玩。現在,我希望使用MySQL .NET Connector(v6.3.5)連接到我的測試數據庫,如recommended by Mono

我已按照單聲道頁面上的推薦操作(我也回顧了MySQL自己的installation guide),並且已將必要的文件安裝到GAC。我已經將所有必要的參考添加到了我的項目中,並且我的代碼編譯得很好。我仍然無法通過代碼連接到我的XAMPP數據庫。

有趣的是,我能夠通過終端訪問數據庫(./mysql -u tester -p和做use test)沒有任何問題。此外,mysql_client_test也運行良好,我能想到的一切表明服務器是可操作的。

這裏是我的代碼:

string connectionString = "Server=localhost;User ID=tester;Password=******;Database=test;Port=3306;Pooling=false"; 
MySqlConnection connection = new MySqlConnection(connectionString); 

try 
{ 
    Console.WriteLine("Trying to open database connection ..."); 
    connection.Open(); 
} 
catch(Exception ex) 
{ 
    Console.WriteLine(ex.ToString()); 
} 

connection.Close(); 

這裏是例外,我得到當我試圖從代碼連接:

試圖打開數據庫連接... MySql.Data.MySqlClient.MySqlException :無法連接到任何指定的MySQL主機。 ---> System.Net.Sockets.SocketException:連接被拒絕 at System.Net.Sockets.Socket.Connect(System.Net.EndPoint remoteEP)[0x00000] in:0 at System.Net.Sockets.Socket + Worker .Connect()[0x00000]中的內容:0 ---內部異常堆棧跟蹤--- 的末尾位於MySql.Data.MySqlClient.NativeDriver.Open()[0x00000]處:0 位於MySql.Data.MySqlClient。在MySql.Data.MySqlClient.MySqlConnection.Open()中的驅動程序.Open()[0x00000]中:0 位於MySql.Data.MySqlClient.Driver.Create(MySql.Data.MySqlClient.MySqlConnectionStringBuilder設置)[0x00000]位於:0 )[0x00000] in:0

任何輸入都會大大降低ciated。另外,如果您對使用MySQL進行更簡單的設置有任何建議 - 那也將不勝感激!提前致謝!

編輯:(由菲爾·亨特請求信息)

netstat -na | grep LIST 

tcp4  0  0 *.21     *.*     LISTEN 
tcp46  0  0 *.80     *.*     LISTEN 
tcp4  0  0 *.63912    *.*     LISTEN 
tcp4  0  0 127.0.0.1.26164  *.*     LISTEN 
tcp4  0  0 *.17500    *.*     LISTEN 
tcp4  0  0 127.0.0.1.631   *.*     LISTEN 
tcp6  0  0 ::1.631    *.*     LISTEN 

回答

1

發現問題!

這基本上是XAMPP如何設置MySQL服務器的一個問題。出於某種原因,有兩條行,skip-networking.../XAMPP/xamppfiles/etc/my.cnf。下面是該文件的一個片段,顯示了我正在談論的幾行。我猜,這是Mac版本的「開箱即用的錯誤」。註釋掉這兩個skip-networking行可以解決問題!

my.cnf

# commented in by xampp security 
#skip-networking 
#skip-networking <- This line was left uncommented by default, for some reason. 
server-id = 1 
+0

不要忘了接受你自己的答案是正確的 – abatishchev 2010-11-02 08:13:42

+0

Jepp!我會這樣做,但我必須再等13個小時!^^ – Leif 2010-11-02 13:31:02