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?
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:)
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
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.
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);
Ich bin auf einem Windows 7-Computer und musste die folgenden 3 Änderungen vornehmen, um eine Verbindung zu AWS RDB herstellen zu können.
Update der VPC-Sicherheitsgruppe in AWS Console (ähnlich wie oben bei Mikemay)
my.cnf-Update in der lokalen MySQL-Konfiguration
Deaktivieren Sie die Windows-Firewall
Nach diesen Änderungen kann ich mich durch beides verbinden
Eingabeaufforderung mit
mysql.exe -h <AWS DB Endpoint> -U <UserName> -P <Port Number, likely 3306> -p
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.
Notieren Sie sich die Sicherheitsgruppe Ihres mySQL-Servers (in meinem Fall awseb-e).
Wählen Sie in der Liste mySQL aus, fügen Sie die Details Ihres Client-Servers hinzu und speichern Sie die Regel
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