2016-02-22 2 views
0

Я создал систему, которая подключается к серверу для извлечения данных из базы данных, однако я получаю «Необработанное исключение типа« System.TimeoutException »произошло в MySql.Data.dll« ...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) {}' и сообщите нам, что такое фактическая ошибка .. также добавьте соединение string в файле .config и прочитайте его оттуда. – MethodMan

ответ

1

Убедитесь, что брандмауэр на хосте не открыт и/или сервер MySQL связан с 0.0.0.0 или интерфейса адреса - если он привязан к 127.0.0.1/::1, сервер не будет доступен через сеть.

+0

Просьба уточнить –

+0

использовать netstat и проверить, на каком адресе порт 3306 (если порт по умолчанию) связан и/или использовать telnet/putty и проверить, доступен ли этот порт из сети. если порт связан с адресом интерфейса (возможно, что-то вроде 192.168.1.1), но недоступен из сети, проверьте брандмауэр Windows, если порт разрешен. –

+0

Я использую godaddy, и я добавил свой IP к удаленному SQL, но я все еще сталкиваюсь с той же проблемой. –

Смежные вопросы