2012-05-27 12 views
8

Obecnie używam Amazon EC2 (linux AMI) + MySQL, a teraz pracuję nad materiałem C#.Problemy z łączeniem C# z EC2

pisałem kodu:

 MySqlConnection DBConn = new MySqlConnection(); 
     DBConn.ConnectionString = "Server=ec2-**.compute-1.amazonaws.com;Database=****;uid=root;password=****;port=3306;charset=utf8"; 

     try 
     { 
      DBConn.Open(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("connecting fail"); 
     } 

Ale z jakiegoś powodu, gdy uruchamiam to, że generuje „Łączenie upaść” błąd.

google i zorientowali się, że muszę ustawić "przyznają wszystkie przywileje *. * Root @ 'localhost'"

Tak, zrobiłem to!

Ale nadal nie działa. Myślę, że jednak podążyłem za wszystkimi krokami.

  • pracuję w Visual Studio 2008 & Windows7 w tej chwili.

  • Sprawdziłem błąd i wygląda na to, że jest to błąd przekroczenia limitu czasu. Myślę, że to jest firewall, ale nie wiem, co powinienem zrobić. Ustawiłem grupę zabezpieczeń, aby porty TCP były otwarte dla wszystkich (w tym Mysql). Nadal nie działa. Czy to nie jest sposób na rozwiązanie tego problemu;? ( Jednak rzeczą, która mnie ciekawi to, że mogę uzyskać dostęp do bazy danych MySQL Workbench przed użyciem ustawić grupę zabezpieczeń

Niestety to. Jestem całkowicie nowy w EC2.

+1

Sprawdź zaporę. –

+2

Czy można ponownie wywołać próbę catch, niech wyjątek zwolni i wklei błąd i ślad stosu. – reach4thelasers

+0

Jak już wspomniano, sprawdź firewall nd (ponieważ jest to ec2), upewnij się, że port jest również otwarty w twojej grupie bezpieczeństwa. – Joe

Odpowiedz

0

1) Powinieneś otworzyć port MySQL na swoim serwerze za pośrednictwem konsoli aws. możesz to zrobić, klikając przycisk Przejdź do grup zabezpieczeń DB w sekcji RDS, i po prostu umieść CIDR: 0.0.0.0/0, aby sprawdzić, czy jesteś podłączony i status jest autoryzowany. Następnie możesz zmienić reguły, aby określić, który ip może się łączyć.
2) Powinieneś używać złącza MySQL do łączenia MySQL z C#.
Mysql Connector Link
3) ciąg połączenie powinno być:

Server=yourdburl; 
Database=yourdb; 
Uid=yourdbuser; 
Pwd=yourdbuserpassword; 
charSet=utf8; 

3-te jeden wydaje się w porządku, należy sprawdzić 1. i 2. przypadki.

0

Powinieneś włączyć VPC Flow Logs na tym ENI, aby sprawdzić, czy połączenie zostanie przyjęte na tym interfejsie, lub odrzucone. Duża szansa, że ​​twoje grupy bezpieczeństwa nie są poprawne, jak wspomniał Gandil.

Powiązane problemy