无法使用C#和Mono连接到MySQL数据库

时间:2010-11-01 02:31:46

标签: mysql mono xampp

首先关闭;现在,我一直是SO的狂热读者。这是我的第一个问题。我很惊讶这与数据库有关!请注意,我认为问题可能以某种方式特定于我的设置,所以我不确定你是否能够帮助我,但我想我会试一试!

问题:

所以,我完全数据库新手。我正在使用带有Mono(v2.6.7)的C#和用于Mac的MonoDevelop(v2.4)(OS X 10.6.4)。主要是因为简单的设置,我想使用XAMPP进行游戏。现在,我希望使用MySQL .NET Connector(v6.3.5)连接到我的测试数据库,recommended by Mono

我已按照Mono页面上推荐的内容(我还审核了MySQL自己的installation guide),并已将必要的文件安装到GAC。我已经为我的项目添加了所有必要的引用,我的代码编译得很好。我仍然无法通过代码连接到我的XAMPP数据库。

有趣的是,我能够通过终端(./mysql -u tester -puse 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:连接被拒绝     在System.Net.Sockets.Socket.Connect(System.Net.EndPoint remoteEP)[0x00000] in:0     在System.Net.Sockets.Socket + Worker.Connect()[0x00000]中:0     ---内部异常堆栈跟踪结束---     at MySql.Data.MySqlClient.NativeDriver.Open()[0x00000] in:0     at MySql.Data.MySqlClient.Driver.Open()[0x00000] in:0     在MySql.Data.MySqlClient.Driver.Create(MySql.Data.MySqlClient.MySqlConnectionStringBuilder设置)[0x00000] in:0     at MySql.Data.MySqlClient.MySqlConnection.Open()[0x00000] in:0

任何输入都将不胜感激。此外,如果您对使用MySQL进行更简单的设置有任何建议 - 这也将非常受欢迎!提前谢谢!

编辑:(Phil Hunt要求提供的信息)

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 个答案:

答案 0 :(得分:1)

发现了问题!

这基本上是XAMPP如何设置MySQL服务器的问题。出于某种原因,skip-networking中有两个行,.../XAMPP/xamppfiles/etc/my.cnf。下面是该文件的一个片段,显示了我正在谈论的线条。我猜这是Mac版本的“开箱即用的bug”。评论两个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