首先关闭;现在,我一直是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 -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:连接被拒绝 在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
答案 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