2016-02-22 122 views
0

我已经创建了一个连接到服务器以从数据库中检索数据的系统,但是我得到“在MySql.Data.dll中发生了类型'System.TimeoutException'的未处理异常”...C#不会打开连接

一切都很好,如果我连接到本地主机....

string StrCon = string.Format("Server= Cant tell you ; database={0};UID= cant tell you ; password='cant tell you '", "cant tell you"); 
     MySqlConnection Connection = new MySqlConnection(StrCon); 

     while (true) 
     { 
      //MySqlConnection Connection = null; 
      Console.WriteLine("not connected"); 
      Connection.Open(); 
      Console.WriteLine("connected"); 
      string Query = "SELECT * FROM lat_long WHERE ID=1"; 
      MySqlCommand cmd = new MySqlCommand(Query, Connection); 
      MySqlDataReader dr = cmd.ExecuteReader(); 
+3

是否打开了远程服务器的端口?首先尝试禁用防火墙。如果有效,重新启用它并添加防火墙豁免(根据我的经验,这是最常见的问题) –

+1

围绕'try {] catch(SqlException sqlex){}'包装您的代码并告诉我们实际的错误是什么。字符串在一个.config文件中并从那里读取。 – MethodMan

回答

1

确保主机上的防火墙没有打开和/或MySQL服务器被绑定到0.0.0.0或接口ADRESS - 如果绑定到127.0.0.1/::1,则服务器将无法通过网络到达。

+0

请详细说明 –

+0

使用netstat并检查哪个地址端口3306(如果默认端口)被绑定和/或使用telnet/putty并检查此端口是否可以从网络访问。如果端口绑定到接口地址(可能类似于192.168.1.1)但无法从网络访问,请检查Windows防火墙是否允许端口。 –

+0

我正在使用godaddy,并且已将我的IP添加到远程SQL,但我仍然面临同样的问题。 –