2012-05-27 4 views
8

Ich verwende derzeit Amazon EC2 (AMI Linux) + MySQL, und jetzt arbeite ich an C# Zeug.Probleme über C# Verbindung zu EC2

schrieb ich Code wie folgt:

 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"); 
     } 

Aber aus irgendeinem Grund, wenn ich dies ausführen, erzeugt es einen Fehler ‚Verbindungs ​​fail‘.

ich gegoogelt und herausgefunden, dass ich brauche, um „* alle Berechtigungen erteilen. * Root @ localhost“

Also, ich habe das!

Aber es funktioniert immer noch nicht. Ich denke, ich bin allen Schritten gefolgt.

  • Ich arbeite an Visual Studio 2008 & Windows7 im Moment.

  • Ich überprüfte den Fehler und es scheint, es ist ein Timeout-Fehler. Ich denke, es ist eine Firewall-Sache, aber ich weiß nicht, was ich tun soll. Ich stelle meine Sicherheitsgruppe so ein, dass die TCP-Ports für alle geöffnet sind (inkl. Mysql). Es funktioniert immer noch nicht. Ist das nicht der Weg, um dieses Problem zu lösen,? ( jedoch die Sache, die ich neugierig bin, ist, dass ich auf die Datenbank mit MySQL Workbench zugreifen konnte, bevor ich die Sicherheitsgruppe gesetzt

Sorry, dass. Ich bin total neu in EC2

+1

Überprüfen Sie die Firewall. –

+2

Konnten Sie den Versuch catch, die Ausnahme feuern und fügen Sie den Fehler und Stack-Trace – reach4thelasers

+0

Wie bereits erwähnt, überprüfen Sie die Firewall nd (da dies ec2 ist) stellen Sie sicher, dass der Port auch in Ihrer Sicherheitsgruppe geöffnet ist. – Joe

Antwort

0

1) Sie sollten den MySQL-Port auf Ihrem Server über die aws-Konsole öffnen. Sie können dies tun, indem Sie im RDS-Bereich auf DB-Sicherheitsgruppen klicken und CIDR: 0.0.0.0/0 eingeben, um zu testen, ob Sie verbunden sind und der Status autorisiert ist. Dann können Sie Regeln neu anordnen, um festzulegen, welche IP-Adresse eine Verbindung herstellen kann.
2) Sie sollten MySQL-Connector verwenden, um MySQL von C# zu verbinden.
Mysql Connector Link
3) Ihre Verbindungszeichenfolge sollte wie:

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

3. ein Recht scheint, sollten Sie 1. und 2. Fälle überprüfen.

0

Sie sollten VPC Flow Logs in diesem ENI einschalten, um zu sehen, ob die Verbindung an dieser Schnittstelle akzeptiert oder abgelehnt wird. Hohe Wahrscheinlichkeit, dass Ihre Sicherheitsgruppen nicht korrekt sind, wie Gandil erwähnt.

Verwandte Themen