it-swarm.com.de

Verbinden Sie sich mit MySQL in AWS vom lokalen Computer aus

Ich versuche, auf meinem lokalen Computer eine Entwicklungsumgebung einzurichten, die auf eine MySQL-Datenbank unter AWS zugreift, aber ich erhalte ständig die Meldung "Verbindung nicht möglich".

mysql_connect('xxx.xxx.xxx.xxx:3306', 'USERNAME', 'PASSWORD');

Ich habe auch die Bindungsadresse in der Datei my.cnf auskommentiert und der IP-Adresse, die eine Verbindung herstellt, Berechtigungen erteilt.

Hat jemand jemals erfolgreich diese Arbeit bekommen?

25
Jeffrey Hunter

Ich nehme an, dies ist eine Firewall von Amazon. Versuchen Sie es mit einem SSH-Tunnel:

http://blogs.Oracle.com/divyen/entry/connecting_mysql_server_on_Amazon

Hinweis: Öffnen Sie MySQL nicht für das öffentliche Internet, auch nicht, wenn Sie IP-Filter verwenden. SSH-Tunnel sind weitaus sicherer. Das Beste daran: Der Tunnel könnte mit localhost: 3306 auf Ihrem Computer erreichbar sein, die Konfiguration muss nicht geändert werden:)

13
Stephan B

Im August 2013 hatte ich folgende Erfahrung mit einer durch Elastic Beanstalk erstellten RDS-Instanz.

0) Angenommen, die RDS-Instanz wurde bereits erstellt
1) Melden Sie sich bei der Verwaltungskonsole an: https://console.aws.Amazon.com/console/home
2) Wählen Sie Dienste-> VPC
3) Wählen Sie Sicherheitsgruppen (auf der linken Seite). 
4) Wählen Sie die Gruppe aus, deren Beschreibung "Sicherheitsgruppe für RDS-DB ..." lautet. 
5) Wählen Sie im Fenster "Sicherheitsgruppe ausgewählt" am unteren Seitenrand "Eingehend".
6) Wählen Sie MySQL als Regel.
7) Geben Sie die IP-Adresse meines lokalen Computers ein, z. 145.23.32.15/32
8) Klicken Sie auf Regel hinzufügen und Regeländerungen anwenden

Danach konnte ich mit mysql von meinem lokalen Rechner aus eine Verbindung zur Datenbank herstellen.

a) Wählen Sie in der Management-Konsole Dienste-> RDS
b) Klicken Sie auf DB-Instanzen (ich habe nur eine) und wählen Sie "Gehe zu Detailseite" für die gewünschte Instanz
c) Beziehen Sie den Host und den Port vom Endpunkt
d) Gehen Sie von einer Terminalsitzung aus wie folgt vor: mysql --Host blah.blah.blah.us-west-2.rds.amazonaws.com --port 3306 -u mein Benutzername -p

34
mikemay

Wenn Sie MySql unter AWS über eine RDS-Instanz verwenden, müssen Sie die IP-Adresse, zu der Sie eine Verbindung herstellen möchten, zu den "DB-Sicherheitsgruppen" hinzufügen. Wechseln Sie dazu in Ihre AWS Managment Console und wählen Sie RDS .
1. Wählen Sie im linken Bereich "DB-Sicherheitsgruppen" aus
2. Wählen Sie "Standard"
3. Wählen Sie "CIDR/IP" aus dem Auswahlfeld und geben Sie die öffentliche IP-Adresse Ihrer Workstation ein. Beispiel: 
. 23.234.192.123/32 (vergessen Sie nicht die/32 für eine einzige IP)
4. Klicken Sie auf "Hinzufügen"
5. Warten Sie einige Minuten, bis es wirksam wird, und stellen Sie dann eine Verbindung zu Ihrem MySql-Client her.

Dies gilt nur für RDS-Instanzen. Wenn Sie MySql verwenden, das auf einer EC2-Instanz installiert ist, entsprechen die Anweisungen dem Zugriff auf MySql von einem Remote-Computer.

29
Cbox

Ich habe MySQL Workbench http://www.mysql.com/products/workbench/ mit RDS verwendet und es funktioniert großartig. Sehr einfach zum Erstellen und Speichern einer neuen Datenbankdienstinstanz. Klicken Sie unter "Server Administration" auf "New Server Instance" und folgen Sie den Anweisungen. Sie müssen die auf der AWS RDS-Website für diese Instanz bereitgestellten Informationen eingeben (z. B. Endpunkt).

HINWEIS: Damit Sie tatsächlich eine Verbindung herstellen können, MÜSSEN Sie Ihre IP-Adresse zu den "DB-Sicherheitsgruppen" hinzufügen. Der Link befindet sich in der linken Spalte mit dem Titel "Navigation". Ich verwende die Option "CIDR/IP" (die andere ist die EC2 Security Group). Vergewissern Sie sich, dass nach der IP ein "/ ##" eingefügt wird, z. B. "/ 32", das im Beispiel verwendet wird (Sie werden es auf der Seite sehen). In wenigen Sekunden sollte die IP-Adresse autorisiert werden.

Gehen Sie anschließend zu MySQL Workbench zurück und führen Sie den Erstellungsprozess für die neue Serverinstanz durch.

Um die Verbindung zu verwenden, könnte Ihr Code in etwa so aussehen (das sind Ausschnitte meines Java-Codes):

String url = "jdbc:mysql://yourdatabasename.foo.us-east-1.rds.amazonaws.com:3306/";
String userName = "your_user_name";
String password = "your_password";
String dbName = "your_db_name";
String driver = "com.mysql.jdbc.Driver";
Connection connection = DriverManager.getConnection(url + dbName, userName, password);
2
chrisco

Ich bin auf einem Windows 7-Computer und musste die folgenden 3 Änderungen vornehmen, um eine Verbindung zu AWS RDB herstellen zu können.

  1. Update der VPC-Sicherheitsgruppe in AWS Console (ähnlich wie oben bei Mikemay)

    • Klicken Sie unter https://console.aws.Amazon.com auf Dienste (oben links) und wählen Sie VPC. 
    • Wählen Sie anschließend Sicherheitsgruppen aus
    • Klicken Sie auf die Sicherheitsgruppe mit der Beschreibung "Sicherheitsgruppe für RDS DB ...".
    • Wählen Sie auf der Registerkarte "Eingehend" in der Dropdown-Liste Neue Regel erstellen "MYSQL". 
    • Fügen Sie Ihre IP-Adresse im CIDR-Format hinzu und klicken Sie auf Regel hinzufügen.
    • Klicken Sie auf Regeländerungen anwenden.
  2. my.cnf-Update in der lokalen MySQL-Konfiguration

    • Ändern Sie "bind-address = 127.0.0.1" in "bind-address = 0.0.0.0".
    • Kommentieren Sie "Überspringen-Vernetzung" aus
  3. Deaktivieren Sie die Windows-Firewall

    • Gehen Sie zu Systemsteuerung/System und Sicherheit/Windows Firewall und deaktivieren Sie die Windows Firewall.

Nach diesen Änderungen kann ich mich durch beides verbinden

  • MySQL WorkBench über Datenbank-> Mit Datenbank verbinden
  • Eingabeaufforderung mit 

    mysql.exe -h <AWS DB Endpoint> -U <UserName> -P <Port Number, likely 3306> -p
    
1
user3078359

Wenn Sie RDS erstellen, müssen Sie die Firewall so konfigurieren, dass mySQL-Verbindungen von lokalen oder anderen Instanzen akzeptiert werden. Das Paket wird also auf Firewall-Ebene verworfen.

  • Melden Sie sich an Ihrer AWS-Konsole an. Gehen Sie zu RDS

 enter image description here

Notieren Sie sich die Sicherheitsgruppe Ihres mySQL-Servers (in meinem Fall awseb-e).

  • klicken Sie auf Sicherheitsgruppen 
  • klicken Sie im mittleren Menü auf Ihre Gruppe
  • klicken Sie auf die Registerkarte Eingehend

Wählen Sie in der Liste mySQL aus, fügen Sie die Details Ihres Client-Servers hinzu und speichern Sie die Regel

 enter image description here HINWEIS: Wenn Sie meine IP-Adresse auswählen, wählt AWS Ihre IP-Adresse aus, wenn Sie eine andere IP-Adresse benötigen 

https://www.whatismyip.com/my-ip-information/

und fügen Sie Ihre IP4-IP hinzu

 enter image description here

0
vaquar khan