Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Fehlersuche für RDS Proxy
Im Folgenden finden Sie Ideen zur Fehlerbehebung für einige häufig auftretende Probleme mit dem RDS-Proxy sowie Informationen zu CloudWatch Protokollen für RDS Proxy.
In den RDS Proxy-Protokollen wird jedem Eintrag der Name des zugehörigen Proxy-Endpunkts vorangestellt. Dieser Name kann derjenige sein, den Sie für einen benutzerdefinierten Endpunkt angegeben haben. Es kann sich auch um den speziellen Namen default
für den Standardendpunkt eines Proxys handeln, der Lese-/Schreibanforderungen ausführt. Weitere Informationen zu den Proxy-Endpunkten finden Sie unter Arbeiten mit Amazon RDS Proxy-Endpunkten.
Themen
Überprüfen der Konnektivität für einen Proxy
Sie können die folgenden Befehle verwenden, um zu überprüfen, ob alle Komponenten wie Proxy-, Datenbank- und Recheninstanzen in der Verbindung miteinander kommunizieren können.
Untersuchen Sie den Proxy selbst mithilfe des describe-db-proxiesBefehls. Untersuchen Sie auch die zugehörige Zielgruppe mit dem Befehl describe-db-proxy-target-groups. Überprüfen Sie, ob die Details der Ziele mit der RDS-DB-Instance übereinstimmen, die Sie dem Proxy zuordnen möchten. Verwenden Sie Befehle wie die folgenden.
aws rds describe-db-proxies --db-proxy-name $DB_PROXY_NAME aws rds describe-db-proxy-target-groups --db-proxy-name $DB_PROXY_NAME
Um zu überprüfen, ob der Proxy eine Verbindung zur zugrunde liegenden Datenbank herstellen kann, überprüfen Sie mithilfe des describe-db-proxy-targetsBefehls die in den Zielgruppen angegebenen Ziele. Verwenden Sie einen Befehl wie den folgenden.
aws rds describe-db-proxy-targets --db-proxy-name $DB_PROXY_NAME
Die Ausgabe des describe-db-proxy-targetsBefehls enthält ein TargetHealth
Feld. Sie können die Felder State
, Reason
und Description
in TargetHealth
überprüfen, um festzustellen, ob der Proxy mit der zugrunde liegenden DB-Instance kommunizieren kann.
-
Der Wert
State
fürAVAILABLE
gibt an, dass der Proxy eine Verbindung mit der DB-Instance herstellen kann. -
Der Wert
State
fürUNAVAILABLE
weist auf ein temporäres oder dauerhaftes Verbindungsproblem hin. Überprüfen Sie in diesem Fall die FelderReason
undDescription
. Wenn beispielsweise derReason
den WertPENDING_PROXY_CAPACITY
hat, versuchen Sie erneut , eine Verbindung herzustellen, nachdem der Proxy seinen Skalierungsvorgang beendet hat. WennReason
den WertUNREACHABLE
,CONNECTION_FAILED
oderAUTH_FAILURE
hat, verwenden Sie die Erläuterung aus dem FeldDescription
, um das Problem leichter zu diagnostizieren. -
Das Feld
State
hat möglicherweise für kurze Zeit einen Wert vonREGISTERING
, bevor Sie zuAVAILABLE
oderUNAVAILABLE
wechseln.
Wenn der folgende Netcat-Befehl (nc
) erfolgreich ist, können Sie von der EC2 Instanz oder einem anderen System aus, auf dem Sie angemeldet sind, auf den Proxy-Endpunkt zugreifen. Dieser Befehl meldet einen Fehler, wenn Sie sich nicht in derselben VPC wie der Proxy und die zugehörige Datenbank befinden. Möglicherweise können Sie sich direkt bei der Datenbank anmelden, ohne sich in derselben VPC zu befinden. Sie können sich jedoch nur am Proxy anmelden, wenn Sie sich in derselben VPC befinden.
nc -zx
MySQL_proxy_endpoint
3306 nc -zxPostgreSQL_proxy_endpoint
5432
Sie können die folgenden Befehle verwenden, um sicherzustellen, dass Ihre EC2 Instanz über die erforderlichen Eigenschaften verfügt. Insbesondere muss die VPC für die EC2 Instance mit der VPC für den der identisch sein, mit dem der Proxy eine Verbindung herstellt.
aws ec2 describe-instances --instance-ids
your_ec2_instance_id
Untersuchen Sie die für den Proxy verwendeten Secrets Manager-Secrets.
aws secretsmanager list-secrets aws secretsmanager get-secret-value --secret-id
your_secret_id
Stellen Sie sicher, dass das von angezeigte SecretString
Feld als JSON-Zeichenfolge codiert get-secret-value
ist, die die Felder und enthält. username
password
Das folgende Beispiel zeigt das Format des SecretString
-Feldes.
{
"ARN": "some_arn
",
"Name": "some_name
",
"VersionId": "some_version_id",
"SecretString": '{"username":"some_username","password":"some_password
"}',
"VersionStages": [ "some_stage
" ],
"CreatedDate": some_timestamp
}
Häufige Probleme und Lösungen
In diesem Abschnitt werden einige häufig auftretende Probleme und mögliche Lösungen bei der Verwendung von RDS Proxy beschrieben.
Überprüfen Sie nach dem Ausführen des aws rds describe-db-proxy-targets
CLI-Befehls FolgendesProxy does not have any registered
credentials
, falls in der TargetHealth
Beschreibung angegeben:
-
Es sind Anmeldeinformationen registriert, damit der Benutzer auf den Proxy zugreifen kann.
-
Die IAM-Rolle für den Zugriff auf das vom Proxy verwendete Secrets Manager-Geheimnis ist gültig.
Beim Erstellen eines DB-Proxys oder beim Herstellen einer Verbindung mit einem DB-Proxy können die folgenden RDS-Ereignisse auftreten.
Kategorie | RDS-Ereignis-ID | Beschreibung |
---|---|---|
Ausfall |
RDS-EVENT-0243 | RDS konnte keine Kapazität für den Proxy bereitstellen, da in Ihren Subnetzen nicht genügend IP-Adressen verfügbar sind. Stellen Sie sicher, dass Ihre Subnetze die Mindestanzahl unbenutzter IP-Adressen aufweisen, um das Problem zu lösen. Informationen zur Bestimmung der empfohlenen Anzahl für Ihre Instance-Klasse finden Sie unter Planen der Kapazität von IP-Adressen. |
Ausfall |
RDS-EVENT-0275 |
RDS hat einige Verbindungen zum DB-Proxy gedrosselt. |
Beim Erstellen eines neuen Proxys oder beim Herstellen einer Verbindung mit einem Proxy können die folgenden Probleme auftreten.
Fehler | Ursachen oder Problemumgehungen |
---|---|
|
Wählen Sie eine vorhandene IAM-Rolle aus, anstatt eine neue zu erstellen. |
Behebung von RDS-Proxyproblemen mit RDS for MySQL
Beim Herstellen einer Verbindung mit einem MySQL-Proxy können die folgenden Probleme auftreten.
Fehler | Ursachen oder Problemumgehungen |
---|---|
ERROR 1040 (HY000): Connections rate limit exceeded (
|
Die Rate der Verbindungsanforderungen vom Client zum Proxy hat den Grenzwert überschritten. |
ERROR 1040 (HY000): IAM authentication rate limit exceeded
|
Die Anzahl der gleichzeitigen Anforderungen mit IAM-Authentifizierung vom Client an den Proxy hat den Grenzwert überschritten. |
ERROR 1040 (HY000): Number simultaneous connections exceeded (
|
Die Anzahl der gleichzeitigen Verbindungsanforderungen vom Client zum Proxy hat den Grenzwert überschritten. |
|
Das vom Proxy verwendete Secrets Manager-Geheimnis stimmt nicht mit dem Benutzernamen und dem Passwort eines vorhandenen Datenbankbenutzers überein. Aktualisieren Sie entweder die Anmeldeinformationen im Secrets Manager-Geheimnis oder stellen Sie sicher, dass der Datenbankbenutzer vorhanden ist und über das gleiche Passwort wie im Geheimnis verfügt. |
ERROR 1105 (HY000): Unknown error
|
Es ist ein unbekannter Fehler aufgetreten. |
ERROR 1231 (42000): Variable ''character_set_client'' can't be set to the value of
|
Der für den |
ERROR 3159 (HY000): This RDS Proxy requires TLS connections.
|
Sie haben die Einstellung Transport Layer Security erfordern im Proxy aktiviert, aber Ihre Verbindung enthielt den Parameter
|
ERROR 2026 (HY000): SSL connection error: Internal Server
|
Der TLS-Handshake an den Proxy ist fehlgeschlagen. Einige mögliche Gründe sind:
|
ERROR 9501 (HY000): Timed-out waiting to acquire database connection
|
Auf dem Proxy ist beim Herstellen einer Datenbankverbindung eine Zeitüberschreitung aufgetreten. Einige mögliche Gründe sind:
|
Behebung von RDS-Proxyproblemen mit RDS for PostgreSQL
Beim Herstellen einer Verbindung mit einem PostgreSQL-Proxy können die folgenden Probleme auftreten.
Fehler | Ursache | Lösung |
---|---|---|
|
Der Benutzer hat versucht, mithilfe der IAM-Authentifizierung mit der Einstellung |
Der Benutzer muss eine Verbindung mit der Datenbank mit der Mindesteinstellung |
|
Es gibt kein Secrets Manager-Secret für diese Rolle. |
Fügen Sie ein Secrets Manager-Secret diese Rolle hinzu. Weitere Informationen finden Sie unter Konfiguration der IAM-Authentifizierung für RDS Proxy. |
|
Der Datenbank-Client, der für die Verbindung mit dem Proxy verwendet wird, nutzt einen Authentifizierungsmechanismus, der derzeit vom Proxy nicht unterstützt wird. |
Wenn Sie keine IAM-Authentifizierung verwenden, verwenden Sie die MD5 oder SCRAM-Passwortauthentifizierung. |
|
Der Datenbankclient, der zum Herstellen einer Verbindung mit dem Proxy verwendet wird, sendet beim Versuch, eine Verbindung herzustellen, keinen Benutzernamen. |
Stellen Sie sicher, dass Sie beim Einrichten einer Verbindung zum Proxy mit dem PostgreSQL-Client Ihrer Wahl einen Benutzernamen definieren. |
|
Ein Client hat versucht, eine Verbindung über die IAM-Authentifizierung herzustellen, aber SSL war nicht aktiviert. |
Aktivieren Sie SSL im PostgreSQL-Client. |
|
Der Benutzer hat die Option Transport Layer Security erfordern aktiviert, hat aber versucht, auf dem PostgreSQL-Client eine Verbindung mit |
Führen Sie einen der folgenden Schritte aus, um diesen Fehler zu beheben:
|
|
Dies kann folgende Ursachen haben:
|
Gehen Sie folgendermaßen vor, um diesen Fehler zu beheben:
|
|
Das Passwort für diese Rolle stimmt nicht mit dem Secrets Manager-Secret überein. |
Überprüfen Sie den Schlüssel für diese Rolle in Secrets Manager, um festzustellen, ob das Passwort mit dem in Ihrem PostgreSQL-Client verwendeten Passwort übereinstimmt. |
|
Es gibt ein Problem mit dem IAM-Token, das für die IAM-Authentifizierung verwendet wird. |
Generieren Sie ein neues Authentifizierungstoken und verwenden Sie es in einer neuen Verbindung. |
|
Der PostgreSQL-Client, mit dem eine Verbindung zum Proxy hergestellt wird, verwendet ein Protokoll, das älter als 3.0 ist. |
Verwenden Sie einen neueren PostgreSQL-Client, der das 3.0-Messaging-Protokoll unterstützt. Wenn Sie die |
|
Der PostgreSQL-Client, der für die Verbindung mit dem Proxy verwendet wird, versucht, den Streaming-Replikationsmodus zu verwenden, der derzeit vom RDS-Proxy nicht unterstützt wird. |
Deaktivieren Sie den Streaming-Replikationsmodus im PostgreSQL-Client, der für die Verbindung verwendet wird. |
|
Über die Startmeldung fordert der PostgreSQL-Client, der für die Verbindung mit dem Proxy verwendet wird, eine Option an, die derzeit vom RDS-Proxy nicht unterstützt wird. |
Deaktivieren Sie die Option, die in der obigen Nachricht als nicht unterstützt angezeigt wird, in dem PostgreSQL-Client, der für die Verbindung verwendet wird. |
|
Die Anzahl der gleichzeitigen Anforderungen mit IAM-Authentifizierung vom Client an den Proxy hat den Grenzwert überschritten. |
Reduzieren Sie die Rate, mit der Verbindungen mit IAM-Authentifizierung von einem PostgreSQL-Client hergestellt werden. |
|
Die Anzahl der gleichzeitigen Verbindungsanforderungen vom Client zum Proxy hat den Grenzwert überschritten. |
Reduzieren Sie die Anzahl der aktiven Verbindungen von PostgreSQL-Clients zu diesem RDS-Proxy. |
|
Die Rate der Verbindungsanforderungen vom Client zum Proxy hat den Grenzwert überschritten. |
Reduzieren Sie die Rate, mit der Verbindungen von einem PostgreSQL-Client hergestellt werden. |
|
Es ist ein unbekannter Fehler aufgetreten. |
Wenden Sie sich an den AWS Support, um das Problem zu untersuchen. |
|
Der Proxy hat beim Warten auf den Aufbau einer Datenbankverbindung innerhalb der in der Einstellung angegebenen Dauer eine Zeitüberschreitung festgestellt.
|
Folgende Lösungen sind möglich:
|
|
Die vom Proxy hergestellte Datenbankverbindung hat einen Fehler zurückgegeben. |
Die Lösung hängt vom spezifischen Datenbankfehler ab. Ein Beispiel is: |
Problembehandlung bei gelöschter postgres
Datenbank
Wenn Sie die postgres
Datenbank versehentlich aus Ihrer Instance löschen, müssen Sie die Datenbank wiederherstellen, um die Konnektivität zu Ihrer Instance wiederherzustellen. Führen Sie die folgenden Befehle in Ihrer DB-Instance aus:
CREATE DATABASE postgres; GRANT CONNECT ON DATABASE postgres TO rdsproxyadmin;