Herstellen einer Verbindung zu einer DB-Instance, in der die PostgreSQL-Datenbank-Engine ausgeführt wird - Amazon Relational Database Service

Herstellen einer Verbindung zu einer DB-Instance, in der die PostgreSQL-Datenbank-Engine ausgeführt wird

Wenn Amazon RDS Ihre DB-Instance bereitgestellt hat, können sie eine beliebige Standard-SQL-Client-Anwendung verwenden, um eine Verbindung zu der DB-Instance herzustellen. Bevor Sie eine Verbindung zu der DB-Instance herstellen können, muss diese verfügbar und zugänglich sein. Ob Sie sich von außerhalb der VPC mit der Instance verbinden können, hängt davon ab, wie Sie die Amazon-RDS-DB-Instance erstellt haben:

  • Wenn Sie Ihre DB-Instance als öffentlich erstellt haben, können sich Geräte und Amazon-EC2-Instances außerhalb der VPC mit Ihrer Datenbank verbinden.

  • Wenn Sie Ihre DB-Instance als privat erstellt haben, können sich nur Amazon-EC2-Instances und -Geräte innerhalb der Amazon VPC mit Ihrer Datenbank verbinden.

Um zu überprüfen, ob Ihre DB-Instance öffentlich oder privat ist, zeigen Sie über die AWS Management Console die Registerkarte Connectivity & security (Konnektivität und Sicherheit) für Ihre Instance an. Unter Security (Sicherheit) finden Sie den Wert „Publicly accessible“ (Öffentlich zugänglich), mit „No“ (Nein) für privat und „Yes“ (Ja) für öffentlich.

Weitere Informationen zu verschiedenen Amazon-RDS- und Amazon-VPC-Konfigurationen und deren Auswirkungen auf die Zugänglichkeit finden Sie unter Szenarien für den Zugriff auf eine DB-Instance in einer VPC.

Wenn die DB-Instance verfügbar und zugänglich ist, können Sie eine Verbindung herstellen, indem Sie der SQL-Clientanwendung die folgenden Informationen bereitstellen:

  • Der Endpunkt der DB-Instance, der als Hostname (DNS-Name) für die Instanz dient.

  • Den Port, über den die DB-Instance kommuniziert. Der Standardport für PostgreSQL lautet 5432.

  • Den Benutzernamen und das Passwort für die DB-Instanz. Der Standardwert „Haupt-Benutzername“ für PostgreSQL ist postgres.

  • Der Name und das Passwort der Datenbank (DB-Name).

Sie können diese Details abrufen, indem Sie den Befehl AWS Management Console, den AWS CLI-Befehl describe-db-instances oder die Operation DescribeDBInstances der Amazon-RDS-API verwenden.

So suchen Sie den Endpunkt, die Portnummer und den DB-Namen mit dem AWS Management Console

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon-RDS-Konsole unter https://console.aws.amazon.com/rds/.

  2. Öffnen Sie die RDS-Konsole und wählen Sie Databases (Datenbanken), um eine Liste Ihrer DB-Instances anzuzeigen.

  3. Wählen Sie den Namen der PostgreSQL-DB-Instance, um deren Details anzuzeigen.

  4. Kopieren Sie auf der Registerkarte Connectivity & security (Anbindung und Sicherheit) den Endpunkt. Notieren Sie sich auch die Portnummer. Sie benötigen sowohl den Endpunkt als auch die Portnummer, um die Verbindung zur DB-Instance herzustellen.

    
                            Rufen Sie den Endpunkt von der RDS-Konsole ab
  5. Notieren Sie auf der Registerkarte Konfiguration den DB-Namen. Wenn Sie eine Datenbank erstellt haben, als Sie die RDS für PostgreSQL-Instance erstellt haben, wird der Name unter DB-Name aufgeführt. Wenn Sie keine Datenbank erstellt haben, zeigt der DB-Name einen Bindestrich (‐) an.

    
                            Rufen Sie den DB-Namen von der RDS-Konsole ab

Nachfolgend werden zwei Möglichkeiten gezeigt, eine Verbindung mit einer PostgreSQL-DB-Instance herzustellen. Im ersten Beispiel wird pgAdmin verwendet, ein beliebtes Open Source-Tool für die PostgreSQL-Administration und -Entwicklung. Im zweiten Beispiel wird psql verwendet, ein Befehlszeilen-Dienstprogramm, das in jeder PostgreSQL-Installation enthalten ist.

Herstellen einer Verbindung zu einer RDS für PostgreSQL-DB-Instance mit pgAdmin

Sie können mit der Open-Source-Software pgAdmin eine Verbindung mit einer RDS for PostgreSQL-DB-Instance herstellen. Sie können pgAdmin von http://www.pgadmin.org/ herunterladen und instalieren, ohne über eine lokale PostgreSQL-Instance auf Ihrem Client-Computer zu verfügen.

So stellen Sie eine Verbindung zu Ihrer RDS für PostgreSQL-DB-Instance mit pgAdmin her

  1. Starten Sie die Anwendung pgAdmin auf Ihrem Client-Computer.

  2. Klicken Sie auf der Registerkarte Dashboard auf Add New Server (Neuen Server hinzufügen).

  3. Geben Sie im Dialogfeld Create – Server (Erstellen – Server) auf der Registerkarte General (Allgemein) einen Namen für den Server in pgAdmin ein.

  4. Geben Sie auf der Registerkarte Verbindung die folgenden Informationen der DB-Instance ein:

    • Geben Sie unter Host den Endpunkt ein, z. B. mypostgresql.c6c8dntfzzhgv0.us-east-2.rds.amazonaws.com.

    • Geben Sie in das Feld Port den zugehörigen Port ein.

    • Geben Sie für Benutzername den Benutzernamen ein, den Sie beim Erstellen der DB-Instance eingegeben haben (wenn Sie den „Haupt-Benutzernamen“ vom Standardwert postgres geändert haben).

    • Geben Sie unter Password (Passwort) das beim Erstellen der DB-Instance festgelegte Passwort ein.

  5. Wählen Sie Save (Speichern) aus.

    Falls Probleme beim Herstellen der Verbindung auftreten, lesen Sie die Informationen unter Fehlerbehebung bei Verbindungen mit Ihrer RDS für PostgreSQL-Instance.

  6. Um im pgAdmin-Browser auf eine Datenbank zuzugreifen, erweitern Sie nacheinander den Knoten Server, die DB-Instance und den Knoten Datenbanken. Wählen Sie anschließend die gewünschte Datenbank in der DB-Instance aus.

  7. Um einen Bereich zum Eingeben von SQL-Befehlen zu öffnen, klicken Sie auf Tools, Query Tool (Abfragetool).

Verwenden von psql zum Herstellen einer Verbindung mit Ihrer RDS für PostgreSQL-DB-Instance

Sie können eine lokale Kopie des Befehlszeilenprogramms psql verwenden, um eine Verbindung mit einer RDS for PostgreSQL-DB-Instance herzustellen. Dazu muss entweder PostgreSQL oder der psql-Client auf dem Computer installiert sein.

Um über psql eine Verbindung zu Ihrer RDS for PostgreSQL-DB-Instance herzustellen, müssen Sie Hostinformationen (DNS), Zugangsdaten und den Namen der Datenbank angeben.

Verwenden Sie eines der folgenden Formate, um eine Verbindung zu Ihrer RDS für PostgreSQL-DB-Instance herzustellen. Sie werden beim Verbinden zur Eingabe eines Passworts aufgefordert. Verwenden Sie in Stapelaufträgen oder Skripts die Option --no-password. Diese Option ist für die gesamte Sitzung festgelegt.

Anmerkung

Ein Verbindungsversuch mit --no-password schlägt fehl, wenn der Server eine Passwortauthentifizierung erfordert und ein Passwort aus anderen Quellen nicht verfügbar ist. Weitere Informationen finden Sie in der PSQL-Dokumentation.

Wenn Sie sich zum ersten Mal mit dieser DB-Instance verbinden oder noch keine Datenbank für diese RDS for PostgreSQL-Instance erstellt haben, können Sie mit dem „Haupt-Benutzernamen“ und dem Passwort eine Verbindung zur Postgres-Datenbank herstellen.

Verwenden Sie unter Unix das folgende Format.

psql \ --host=<DB instance endpoint> \ --port=<port> \ --username=<master username> \ --password \ --dbname=<database name>

Verwenden Sie unter Windows das folgende Format.

psql ^ --host=<DB instance endpoint> ^ --port=<port> ^ --username=<master username> ^ --password ^ --dbname=<database name>

Der folgende Befehl stellt beispielsweise eine Verbindung mit der Datenbank mypgdb in der PostgreSQL-DB-Instance mypostgresql her, wobei fiktive Anmeldeinformationen verwendet werden.

psql --host=mypostgresql.c6c8mwvfdgv0.us-west-2.rds.amazonaws.com --port=5432 --username=awsuser --password --dbname=mypgdb

Fehlerbehebung bei Verbindungen mit Ihrer RDS für PostgreSQL-Instance

Fehler – FATAL: Datenbankname existiert nicht

Wenn Sie bei der Verbindung einen Fehler wie FATAL: database name does not exist erhalten, versuchen Sie, den Standard-Datenbanknamen postgres für die Option --dbname zu verwenden.

Fehler – Keine Verbindung mit dem Server möglich: Zeitüberschreitung für die Verbindung

Wenn die Verbindung mit der DB-Instance nicht hergestellt werden kann, wird meistens der Fehler Could not connect to server: Connection timed out. angezeigt. Ist dies der Fall, gehen Sie wie folgt vor:

  • Prüfen Sie, ob der DB-Instance-Endpunkt als Hostname sowie die richtige Portnummer angegeben wurden.

  • Stellen Sie sicher, dass die öffentliche Zugänglichkeit der DB-Instance auf Ja festgelegt ist, um externe Verbindungen zuzulassen. Informationen zum Ändern der Einstellung Öffentlicher Zugriff finden Sie unter Ändern einer Amazon RDS-DB-Instance.

  • Prüfen Sie, ob die der DB-Instance zugewiesene Sicherheitsgruppe die erforderlichen Regeln enthält, um den Zugriff durch alle vorhandenen Firewalls zu ermöglichen. Beispiel: Bei der Erstellung der DB-Instance wurde der Standardport 5432 festgelegt und die Firewall-Regeln des Unternehmens blockieren Verbindungen mit diesem Port von externen Unternehmensgeräten.

    Sie können dieses Problem beheben, indem Sie für die DB-Instance einen anderen Port verwenden. Stellen Sie außerdem sicher, dass die mit der DB-Instance verknüpfte Sicherheitsgruppe eingehende Verbindungen mit dem neuen Port zulässt. Informationen zum Ändern der Einstellung für Datenbank-Port finden Sie unter Ändern einer Amazon RDS-DB-Instance.

  • Weitere Informationen finden Sie auch unter Fehler bei Zugriffsregeln für Sicherheitsgruppen.

Fehler bei Zugriffsregeln für Sicherheitsgruppen

Die bei Weitem häufigsten Verbindungsprobleme treten in Verbindung mit den Zugriffsregeln der Sicherheitsgruppe auf, die der DB-Instance zugewiesen wurde. Wenn Sie bei der Erstellung der DB-Instance die Standard-DB-Sicherheitsgruppe verwendet haben, ist es sehr wahrscheinlich, dass die Regeln in der Sicherheitsgruppe den Zugriff auf die Instance nicht zulassen.

Damit die Verbindung möglich ist, muss die Sicherheitsgruppe, die Sie der DB-Instance bei der Erstellung zugewiesen haben, den Zugriff auf die DB-Instance zulassen. Wenn die DB-Instance beispielsweise in einer VPC erstellt wurde, muss sie über eine VPC-Sicherheitsgruppe verfügen, die die Verbindungen zulässt. Prüfen Sie, ob die DB-Instance mit einer Sicherheitsgruppe erstellt wurde, die keine Verbindungen vom Gerät oder von der Amazon EC2-Instance zulässt, auf dem bzw. der die Anwendung ausgeführt wird.

Sie können eine Regel für eingehenden Datenverkehr in der Sicherheitsgruppe hinzufügen oder ändern. Die Auswahl der Option My IP (Meine IP) für Source (Quelle) ermöglicht Zugriff auf die DB-Instance von der IP-Adresse, die in Ihrem Browser erkannt wird. Weitere Informationen finden Sie unter Ermöglichen des Zugriffs auf Ihre DB-Instance in der VPC durch Erstellen einer Sicherheitsgruppe.

Wurde die DB-Instance außerhalb einer VPC erstellt, muss sie über eine Datenbank-Sicherheitsgruppe verfügen, die diese Verbindungen zulässt.

Weitere Informationen zu Amazon RDS-Sicherheitsgruppen finden Sie unter Zugriffskontrolle mit Sicherheitsgruppen.