Beheben von Verbindungsproblemen für Datenbanken von Aurora MySQL - Amazon Aurora

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.

Beheben von Verbindungsproblemen für Datenbanken von Aurora MySQL

Die Sicherstellung einer zuverlässigen Verbindung zwischen Ihren Anwendungen und Ihrer RDS-DB-Instance ist entscheidend für den reibungslosen Betrieb Ihrer Workloads. Verbindungsprobleme können jedoch aufgrund verschiedener Faktoren wie Netzwerkkonfigurationen, Authentifizierungsproblemen oder Ressourcenbeschränkungen auftreten. Dieses Handbuch soll einen umfassenden Ansatz zur Behebung von Verbindungsproblemen mit Aurora MySQL bieten.

Identifizieren von Problemen mit der Datenbankverbindung für Aurora MySQL

Die Identifizierung der spezifischen Kategorie des Verbindungsproblems kann dabei helfen, die möglichen Ursachen einzugrenzen und den Fehlerbehebungsprozess zu steuern. Für jede Kategorie sind möglicherweise unterschiedliche Ansätze und Techniken zur Diagnose und Lösung erforderlich. Probleme mit der Datenbankverbindung lassen sich grob in die folgenden Kategorien einteilen.

Verbindungsfehler und Ausnahmen

Verbindungsfehler und Ausnahmen können aus verschiedenen Gründen auftreten, darunter falsche Verbindungszeichenfolgen, Authentifizierungsfehler, Netzwerkunterbrechungen oder Datenbankserverprobleme. Zu den Ursachen können falsch konfigurierte Verbindungsparameter, ungültige Anmeldeinformationen, Netzwerkausfälle oder Abstürze oder Neustarts von Datenbankservern zählen. Falsch konfigurierte Sicherheitsgruppen, VPC-Einstellungen (Virtual Private Cloud), Netzwerk-Zugriffskontrolllisten (ACLs) und Routentabellen, die Subnetzen zugeordnet sind, können ebenfalls zu Verbindungsproblemen führen.

Verbindungslimit erreicht

Dieses Problem tritt auf, wenn die Anzahl der gleichzeitigen Verbindungen zum Datenbankserver das maximal zulässige Limit überschreitet. Datenbankserver haben in der Regel ein konfigurierbares maximales Verbindungslimit, das durch den Parameter „max_connections“ in den Clustern und Instance-Parametergruppen definiert wird. Durch die Festlegung eines Verbindungslimits stellt der Datenbankserver sicher, dass er über ausreichende Ressourcen (z. B. Arbeitsspeicher, CPU und Datei-Handles) verfügt, um die vorhandenen Verbindungen effizient zu verarbeiten und eine akzeptable Leistung zu bieten. Zu den Ursachen können Verbindungslecks in der Anwendung, ineffizientes Verbindungspooling oder ein unerwarteter Anstieg der Verbindungsanforderungen gehören.

Verbindungs-Timeouts

Verbindungs-Timeouts treten auf, wenn die Clientanwendung innerhalb eines angegebenen Timeout-Zeitraums keine Verbindung mit dem Datenbankserver herstellen kann. Zu den häufigsten Ursachen zählen Netzwerkprobleme, Serverüberlastung, Firewall-Regeln und falsch konfigurierte Verbindungseinstellungen.

Timeout für Leerlaufverbindungen

Leerlaufverbindungen, die über einen längeren Zeitraum inaktiv bleiben, können vom Datenbankserver automatisch geschlossen werden, um Ressourcen zu schonen. Dieses Timeout ist in der Regel mit wait_timeout und interactive_timeout parameters konfigurierbar und sollte an die Verbindungsnutzungsmuster der Anwendung angepasst werden. Zu den Ursachen können eine Anwendungslogik gehören, die Verbindungen für längere Zeiträume inaktiv lässt, oder eine unsachgemäße Verbindungsverwaltung.

Zeitweilige Trennung vorhandener Verbindungen

Diese Fehlerklasse bezieht sich auf ein Szenario, in dem bestehende Verbindungen zwischen einer Clientanwendung und der Datenbank unerwartet beendet oder in unregelmäßigen Abständen getrennt werden, obwohl sie aktiv sind und verwendet werden. Diese Trennungen treten zeitweise auf, d. h., sie treten in unregelmäßigen Intervallen und nicht konsistent auf. Die Ursachen können Folgendes beinhalten:

  • Probleme mit Datenbankservern wie Neustarts oder Failover

  • Unsachgemäße Behandlung von Anwendungsverbindungen

  • Load Balancing- und Proxy-Probleme

  • Netzwerkinstabilität

  • Probleme mit Komponenten oder Middleware von Drittanbietern, die am Verbindungspfad beteiligt sind

  • Timeouts für die Abfrageausführung

  • Server- oder clientseitige Ressourceneinschränkungen

Die Identifizierung der Ursache durch umfassende Überwachung, Protokollierung und Analyse ist von entscheidender Bedeutung. Die Implementierung einer geeigneten Fehlerbehandlung, von Verbindungspooling und von Wiederholungsmechanismen kann jedoch dazu beitragen, die Auswirkungen dieser zeitweiligen Trennungen auf die Funktionalität und die Benutzererfahrung der Anwendung zu mindern.

Erfassen von Daten zu Verbindungsproblemen für Aurora MySQL

Das Sammeln umfassender Daten zu den Anwendungs-, Datenbank-, Netzwerk- und Infrastrukturkomponenten ist entscheidend für die effektive Behebung von Verbindungsproblemen zwischen einer Anwendung und einer Datenbank von Aurora MySQL. Durch das Sammeln relevanter Protokolle, Konfigurationen und Diagnoseinformationen gewinnen Sie wertvolle Erkenntnisse, die Ihnen helfen können, die Ursache der Verbindungsprobleme zu identifizieren und Sie zu einer geeigneten Lösung zu führen.

Netzwerkprotokolle und -konfigurationen, wie Sicherheitsgruppenregeln, VPC-Einstellungen und Routing-Tabellen, sind wichtig, um potenzielle netzwerkbezogene Engpässe oder Fehlkonfigurationen zu identifizieren, die verhindern können, dass die Anwendung eine erfolgreiche Verbindung mit der Datenbank herstellt. Durch die Analyse dieser Netzwerkkomponenten können Sie sicherstellen, dass die erforderlichen Ports geöffnet, IP-Adressen zulässig und die Routing-Konfigurationen korrekt eingerichtet sind.

Zeitstempel

Notieren Sie sich die genauen Zeitstempel, zu denen die Verbindungsprobleme auftreten. Auf diese Weise können Sie Muster erkennen oder Probleme mit anderen Ereignissen oder Aktivitäten korrelieren.

DB-Engine-Protokolle

Überprüfen Sie zusätzlich zu den allgemeinen Datenbankprotokollen auch die Datenbank-Engine-Protokolle (z. B. das MySQL-Fehlerprotokoll und das Protokoll für langsame Abfragen) auf relevante Informationen oder Fehler, die möglicherweise mit den zeitweiligen Verbindungsproblemen zusammenhängen. Weitere Informationen finden Sie unter Protokollieren bei Aurora-MySQL-Datenbanken.

Clientanwendungsprotokolle

Sammeln Sie detaillierte Protokolle von den Clientanwendungen, die eine Verbindung zur Datenbank herstellen. Anwendungsprotokolle bieten Einblick in die Verbindungsversuche, Fehler und alle relevanten Informationen aus Sicht der Anwendung. Dadurch können Probleme im Zusammenhang mit Verbindungszeichenfolgen, Anmeldeinformationen für die Authentifizierung oder die Behandlung von Verbindungen auf Anwendungsebene aufgedeckt werden.

Datenbankprotokolle hingegen bieten Einblicke in datenbankseitige Fehler, langsame Abfragen oder Ereignisse, die zu Verbindungsproblemen beitragen können. Weitere Informationen finden Sie unter Protokollieren bei Aurora-MySQL-Datenbanken.

Clientumgebungsvariablen

Prüfen Sie, ob Umgebungsvariablen oder Konfigurationseinstellungen auf der Clientseite die Datenbankverbindung beeinflussen könnten, z. B. Proxyeinstellungen, SSL/TLS Einstellungen oder andere relevante Variablen.

Versionen der Clientbibliothek

Stellen Sie sicher, dass der Client die neuesten Versionen aller Datenbanktreiber, Bibliotheken oder Frameworks verwendet, die für die Datenbankverbindung verwendet werden. Veraltete Versionen können bekannte Probleme oder Kompatibilitätsprobleme aufweisen.

Clientnetzwerkerfassung

Führen Sie eine Netzwerkerfassung auf der Clientseite mit einem Tool wie Wireshark oder tcpdump durch, wenn Verbindungsprobleme auftreten. Auf diese Weise können netzwerkbezogene Probleme oder Anomalien auf der Clientseite identifiziert werden.

Netzwerktopologie des Clients

Machen Sie sich mit der Netzwerktopologie des Clients vertraut, einschließlich aller Firewalls, Load Balancer oder anderer Komponenten wie RDS-Proxy oder Proxy SQL, die Verbindungen zur Datenbank herstellen, anstatt dass der Client direkt Verbindungen herstellt.

Einstellungen für das Client-Betriebssystem

Überprüfen Sie die Betriebssystemeinstellungen des Clients, die sich auf die Netzwerkkonnektivität auswirken können, z. B. Firewall-Regeln, Netzwerkadaptereinstellungen und alle anderen relevanten Einstellungen.

Konfiguration für Verbindungspooling

Wenn Sie in Ihrer Anwendung einen Mechanismus für das Verbindungspooling verwenden, überprüfen Sie die Konfigurationseinstellungen und überwachen Sie die Poolmetriken (z. B. aktive Verbindungen, inaktive Verbindungen und Verbindungs-Timeouts), um sicherzustellen, dass der Pool ordnungsgemäß funktioniert. Überprüfen Sie auch die Pooleinstellungen, z. B. die maximale Poolgröße, die minimale Poolgröße und die Einstellungen für die Verbindungsvalidierung, um sicherzustellen, dass sie ordnungsgemäß konfiguriert sind.

Verbindungszeichenfolge

Die Verbindungszeichenfolge umfasst in der Regel Parameter wie den Hostnamen oder den Endpunkt, die Portnummer, den Datenbanknamen und die Anmeldeinformationen für die Authentifizierung. Durch die Analyse der Verbindungszeichenfolge können potenzielle Fehlkonfigurationen oder falsche Einstellungen identifiziert werden, die Verbindungsprobleme verursachen können. Beispielsweise kann ein falscher Hostname oder eine falsche Portnummer verhindern, dass der Client die Datenbank-Instance erreicht, während ungültige Anmeldeinformationen für die Authentifizierung zu Authentifizierungsfehlern und Ablehnungen von Verbindungen führen können. Darüber hinaus kann die Verbindungszeichenfolge Probleme im Zusammenhang mit Verbindungspooling, Timeouts oder anderen verbindungsspezifischen Einstellungen aufdecken, die zu Verbindungsproblemen beitragen können. Die Angabe der vollständigen Verbindungszeichenfolge, die von der Clientanwendung verwendet wird, kann dabei helfen, Fehlkonfigurationen auf dem Client zu ermitteln.

Datenbankmetriken

Überwachen Sie Datenbankmetriken wie CPU-Auslastung, Speicherauslastung und Festplatte I/O in Zeiten, in denen Verbindungsprobleme auftreten. Anhand dieser Informationen kann ermittelt werden, ob in der DB-Instance Ressourcenkonflikte oder Leistungsprobleme auftreten.

DB-Engine-Version

Beachten Sie die DB-Engine-Version von Aurora MySQL. AWS veröffentlicht regelmäßig Updates, die bekannte Probleme und Schwachstellen beheben und zu Leistungsverbesserungen führen. Daher wird dringend empfohlen, ein Upgrade auf die neuesten verfügbaren Versionen durchzuführen, da diese Updates häufig Fehlerkorrekturen und Verbesserungen enthalten, die sich speziell auf Konnektivität, Leistung und Stabilität beziehen. Die Bereitstellung der Informationen zur Datenbankversion zusammen mit den anderen gesammelten Details kann dazu beitragen Support , Verbindungsprobleme effektiv zu diagnostizieren und zu lösen.

Netzwerkmetriken

Sammeln Sie Netzwerkmetriken wie Latenz, Paketverlust und Durchsatz, wenn Verbindungsprobleme auftreten. Diese Daten können mit Tools wie ping und traceroute sowie mit Netzwerküberwachungstools gesammelt werden.

Quellen- und Clientdetails

Ermitteln Sie die IP-Adressen der Anwendungsserver, Load Balancer oder anderer Komponenten, die die Datenbankverbindungen initiieren. Dabei kann es sich um eine einzelne IP-Adresse oder einen Bereich von IP-Adressen (CIDR-Notation) handeln. Wenn es sich bei der Quelle um eine EC2 Amazon-Instance handelt, hilft es auch, den Instance-Typ, die Availability Zone, die Subnetz-ID und die mit der Instance verknüpften Sicherheitsgruppen sowie die Netzwerkschnittstellendetails wie private IP-Adresse und öffentliche IP-Adresse zu überprüfen.

Durch eine gründliche Analyse der gesammelten Daten können Sie Fehlkonfigurationen, Ressourcenbeschränkungen, Netzwerkunterbrechungen oder andere grundlegende Probleme identifizieren, die die zeitweiligen oder persistenten Verbindungsprobleme verursachen. Anhand dieser Informationen können Sie gezielte Maßnahmen ergreifen, z. B. Konfigurationen anpassen, Netzwerkprobleme lösen oder die Handhabung von Verbindungen auf Anwendungsebene verbessern.

Überwachen von Datenbankverbindungen für Aurora MySQL

Sie können auch die folgenden Metriken und Features verwenden, um Verbindungsprobleme zu überwachen und zu beheben.

CloudWatch Metriken
  • CPUUtilization – Eine hohe CPU-Auslastung auf der DB-Instance kann zu einer langsamen Abfrageausführung führen, was Timeouts oder Ablehnungen von Verbindungen nach sich ziehen kann.

  • DatabaseConnections – Überwachen Sie die Anzahl der aktiven Verbindungen zur DB-Instance. Eine hohe Anzahl von Verbindungen nahe dem konfigurierten Maximum kann auf potenzielle Verbindungsprobleme oder eine Erschöpfung des Verbindungspools hinweisen.

  • FreeableMemory – Zu wenig verfügbarer Arbeitsspeicher kann aufgrund von Ressourcenbeschränkungen zu Leistungs- und Verbindungsproblemen führen.

  • NetworkReceiveThroughput und NetworkTransmitThroughput – Ungewöhnliche Spitzen oder Rückgänge beim Netzwerkdurchsatz können auf Verbindungsprobleme oder Netzwerkengpässe hinweisen.

Performance-Insights-Metriken

Analysieren Sie Datenbankmetriken wie die folgenden, um Verbindungsprobleme in Aurora MySQL mithilfe von Performance Insights zu beheben:

  • Aborted_clients

  • Aborted_connects

  • Verbindungen

  • max_connections

  • Threads_connected

  • Threads_created

  • Threads_running

Anhand dieser Metriken können Sie Verbindungsengpässe identifizieren, Netzwerk- oder Authentifizierungsprobleme erkennen, das Verbindungspooling optimieren und ein effizientes Thread-Management sicherstellen. Weitere Informationen finden Sie unter Performance-Insights-Zähler für Aurora MySQL.

Performance-Insights-Features
  • Datenbanklast – Visualisieren Sie die Datenbanklast im Zeitverlauf und korrelieren Sie sie mit Verbindungsproblemen oder Leistungseinbußen.

  • SQL-Statistiken – Analysieren Sie SQL-Statistiken, um ineffiziente Abfragen oder Datenbankvorgänge zu identifizieren, die zu Verbindungsproblemen beitragen können.

  • Häufigste Abfragen – Identifizieren und analysieren Sie die ressourcenintensivsten Abfragen, um potenzielle Leistungsengpässe oder Abfragen mit langer Laufzeit zu identifizieren, die Verbindungsprobleme verursachen können.

Durch die Überwachung dieser Metriken und die Nutzung von Performance Insights können Sie Einblick in die Leistung, den Ressourcenverbrauch und mögliche Engpässe der Datenbank-Instance gewinnen, die Verbindungsprobleme verursachen können. Zum Beispiel:

  • Ein hoher DatabaseConnections-Wert nahe dem Höchstgrenzwert kann auf eine Erschöpfung des Verbindungspools oder eine unsachgemäße Handhabung von Verbindungen hinweisen, was zu Verbindungsproblemen führt.

  • Ein hoher CPUUtilization-Wert oder ein niedriger FreeableMemory-Wert kann auf Ressourcenbeschränkungen hinweisen, die zu einer langsamen Abfrageausführung und zu Timeouts oder Ablehnungen von Verbindungen führen können.

  • Durch die Analyse der Top-Abfragen und der SQL-Statistiken können ineffiziente oder ressourcenintensive Abfragen identifiziert werden, die möglicherweise zu Verbindungsproblemen beitragen.

Darüber hinaus können Sie mithilfe der Überwachung von CloudWatch Protokollen und der Einrichtung von Alarmen Verbindungsprobleme proaktiv erkennen und darauf reagieren, bevor sie eskalieren.

Beachten Sie, dass diese Metriken und Tools zwar wertvolle Erkenntnisse liefern können, sie jedoch in Verbindung mit anderen Schritten zur Fehlerbehebung verwendet werden sollten. Indem Sie auch die Netzwerkkonfigurationen, Sicherheitsgruppenregeln und die Verbindungsverwaltung auf Anwendungsebene überprüfen, können Sie Verbindungsprobleme mit DB-Instances von Aurora MySQL umfassend diagnostizieren und lösen.

Weitere Überwachung für Aurora MySQL

CloudWatch Metriken
  • AbortedClients – Verfolgt die Anzahl der Clientverbindungen, die nicht ordnungsgemäß geschlossen wurden.

  • AuroraSlowConnectionHandleCount – Verfolgt die Anzahl langsamer Verbindungsverarbeitungsvorgänge und weist auf potenzielle Verbindungsprobleme oder Leistungsengpässe hin.

  • AuroraSlowHandshakeCount – Misst die Anzahl langsamer Handshake-Vorgänge, was auch ein Hinweis auf Verbindungsprobleme sein kann.

  • ConnectionAttempts – Misst die Anzahl der Verbindungsversuche zur Aurora MySQL-DB-Instance.

Globale Statusvariablen

Aurora_external_connection_count – Zeigt die Anzahl der Datenbankverbindungen mit der DB-Instance an, ausgenommen RDS-Serviceverbindungen, die für Datenbankzustandsprüfungen verwendet werden.

Durch die Überwachung dieser Metriken und globalen Statusvariablen erhalten Sie Einblick in die Verbindungsmuster, Fehler und potenziellen Engpässe, die Verbindungsprobleme mit Ihrer Amazon Aurora MySQL-Instance verursachen können.

Beispielsweise kann eine hohe Anzahl von AbortedClients oder AuroraSlowConnectionHandleCount auf Verbindungsprobleme hinweisen.

Darüber hinaus können Sie durch die Einrichtung von CloudWatch Alarmen und Benachrichtigungen Verbindungsprobleme proaktiv erkennen und darauf reagieren, bevor sie eskalieren und die Leistung Ihrer Anwendung beeinträchtigen.

Verbindungsfehlercodes für Aurora MySQL

Im Folgenden sind einige häufig auftretende Verbindungsfehler für Datenbanken von Aurora MySQL sowie deren Fehlercodes und Erklärungen aufgeführt.

Fehlercode 1040: Zu viele Verbindungen

Dieser Fehler tritt auf, wenn der Client versucht, mehr Verbindungen herzustellen, als der Datenbankserver maximal zulässt. Dafür gibt es die folgenden möglichen Ursachen:

  • Fehlkonfiguration des Verbindungspoolings – Stellen Sie bei Verwendung eines Verbindungspooling-Mechanismus sicher, dass die maximale Poolgröße nicht zu hoch eingestellt ist und dass die Verbindungen wieder ordnungsgemäß zum Pool freigegeben werden.

  • Konfiguration der Datenbank-Instance – Überprüfen Sie die Einstellung für die maximal zulässige Anzahl von Verbindungen für die Datenbank-Instance und passen Sie sie gegebenenfalls an, indem Sie den Parameter max_connections festlegen.

  • Hohe Parallelität – Wenn mehrere Clients oder Anwendungen gleichzeitig eine Verbindung zur Datenbank herstellen, kann das Limit für die maximal zulässige Anzahl von Verbindungen erreicht werden.

Fehlercode 1045: Zugriff verweigert für Benutzer '...' @ '...' (mit Passwort: JA/NEIN)

Dieser Fehler weist auf einen Authentifizierungsfehler beim Versuch hin, eine Verbindung zur Datenbank herzustellen. Dafür gibt es die folgenden möglichen Ursachen:

  • Kompatibilität des Authentifizierungs-Plugins – Überprüfen Sie, ob das vom Client verwendete Authentifizierungs-Plugin mit dem Authentifizierungsmechanismus des Datenbankservers kompatibel ist.

  • Falscher Benutzername oder falsches Passwort – Stellen Sie sicher, dass der richtige Benutzername und das richtige Passwort in der Verbindungszeichenfolge oder im Authentifizierungsmechanismus verwendet werden.

  • Benutzerberechtigungen – Stellen Sie sicher, dass der Benutzer über die erforderlichen Berechtigungen zum Herstellen einer Verbindung mit der Datenbank-Instance über den angegebenen Host oder das angegebene Netzwerk verfügt.

Fehlercode 1049: Unbekannte Datenbank '...'

Dieser Fehler gibt an, dass der Client versucht, eine Verbindung zu einer Datenbank herzustellen, die auf dem Server nicht vorhanden ist. Dafür gibt es die folgenden möglichen Ursachen:

  • Datenbank nicht erstellt – Stellen Sie sicher, dass die angegebene Datenbank auf dem Datenbankserver erstellt wurde.

  • Falscher Datenbankname – Überprüfen Sie den in der Verbindungszeichenfolge oder Abfrage verwendeten Datenbanknamen noch einmal auf Richtigkeit.

  • Benutzerberechtigungen – Stellen Sie sicher, dass der Benutzer über die erforderlichen Berechtigungen für den Zugriff auf die angegebene Datenbank verfügt.

Fehlercode 1153: Paket mit mehr als 'max_allowed_packet' Bytes empfangen

Dieser Fehler tritt auf, wenn der Client versucht, Daten zu senden oder zu empfangen, die die vom Datenbankserver zugelassene maximale Paketgröße überschreiten. Dafür gibt es die folgenden möglichen Ursachen:

  • Große Abfragen oder Ergebnismengen – Wenn Abfragen ausgeführt werden, die große Datenmengen beinhalten, kann das Paketgrößenlimit überschritten werden.

  • Falsch konfigurierte Einstellungen für die Paketgröße – Überprüfen Sie die Einstellung max_allowed_packet auf dem Datenbankserver und passen Sie sie gegebenenfalls an.

  • Probleme mit der Netzwerkkonfiguration – Stellen Sie sicher, dass die Netzwerkkonfiguration (z. B. die MTU-Größe) die erforderlichen Paketgrößen zulässt.

Fehlercode 1226: Benutzer '...' hat die Ressource 'max_user_connections' überschritten (aktueller Wert: ...)

Dieser Fehler weist darauf hin, dass der Benutzer die vom Datenbankserver zugelassene maximale Anzahl gleichzeitiger Verbindungen überschritten hat. Dafür gibt es die folgenden möglichen Ursachen:

  • Fehlkonfiguration des Verbindungspoolings – Stellen Sie bei Verwendung eines Mechanismus für das Verbindungspooling sicher, dass die maximale Poolgröße für das Verbindungslimit des Benutzers nicht zu hoch festgelegt ist.

  • Konfiguration der Datenbank-Instance – Überprüfen Sie die Einstellung max_user_connections für die Datenbank-Instance und passen Sie sie gegebenenfalls an.

  • Hohe Parallelität – Wenn mehrere Clients oder Anwendungen gleichzeitig über denselben Benutzer eine Verbindung zur Datenbank herstellen, kann das benutzerspezifische Verbindungslimit erreicht werden.

Fehlercode 2003: Es kann keine Verbindung zum MySQL-Server auf '...' hergestellt werden (10061)

Dieser Fehler tritt normalerweise auf, wenn der Client keine TCP/IP Verbindung zum Datenbankserver herstellen kann. Er kann durch verschiedene Probleme verursacht werden, z. B. durch die folgenden:

  • Status der Datenbank-Instance – Stellen Sie sicher, dass sich die Datenbank-Instance im Status availablebefindet und keine Wartungs- oder Sicherungsvorgänge durchgeführt werden.

  • Firewall-Regeln – Überprüfen Sie, ob Firewalls (Betriebssystem, Netzwerk oder Sicherheitsgruppe) die Verbindung auf dem angegebenen Port blockieren (in der Regel 3306 für MySQL).

  • Falscher Hostname oder falscher Endpunkt – Stellen Sie sicher, dass der in der Verbindungszeichenfolge verwendete Hostname oder Endpunkt korrekt ist und mit der Datenbank-Instance übereinstimmt.

  • Probleme mit der Netzwerkkonnektivität – Stellen Sie sicher, dass der Client-Computer die Datenbank-Instance über das Netzwerk erreichen kann. Suchen Sie nach Netzwerkausfällen, Routing-Problemen oder VPC- bzw. Subnetz-Fehlkonfigurationen.

Fehlercode 2005: Unbekannter MySQL-Serverhost '...' (11001)

Dieser Fehler tritt auf, wenn der Client den Hostnamen oder den Endpunkt des Datenbankservers nicht in eine IP-Adresse auflösen kann. Dafür gibt es die folgenden möglichen Ursachen:

  • Probleme mit der DNS-Auflösung – Stellen Sie sicher, dass der Client-Computer den Hostnamen mithilfe von DNS korrekt auflösen kann. Überprüfen Sie die DNS-Einstellungen und den DNS-Cache und versuchen Sie, die IP-Adresse anstelle des Hostnamens zu verwenden.

  • Falscher Hostname oder falscher Endpunkt – Überprüfen Sie den in der Verbindungszeichenfolge verwendeten Hostnamen oder Endpunkt noch einmal auf Richtigkeit.

  • Probleme mit der Netzwerkkonfiguration – Stellen Sie sicher, dass die Netzwerkkonfiguration des Clients (z. B. VPC, Subnetz und Routing-Tabellen) die DNS-Auflösung und Konnektivität zur Datenbank-Instance zulässt.

Fehlercode 2026: SSL-Verbindungsfehler

Dieser Fehler tritt auf, wenn während des Verbindungsversuchs ein Problem mit der SSL/TLS Konfiguration oder der Zertifikatsvalidierung auftritt. Dafür gibt es die folgenden möglichen Ursachen:

  • Ablauf des Zertifikats — Prüfen Sie, ob das vom Server verwendete SSL/TLS Zertifikat abgelaufen ist und erneuert werden muss.

  • Probleme bei der Zertifikatsvalidierung — Stellen Sie sicher, dass der Client das SSL/TLS Serverzertifikat korrekt validieren kann und ob das Zertifikat vertrauenswürdig ist.

  • Probleme mit der Netzwerkkonfiguration — Stellen Sie sicher, dass die Netzwerkkonfiguration SSL/TLS Verbindungen zulässt und den SSL/TLS Handshake-Prozess nicht blockiert oder beeinträchtigt.

  • SSL/TLS configuration mismatch – Make sure that the SSL/TLSDie Einstellungen (z. B. Cipher Suites und Protokollversionen) auf dem Client und dem Server sind kompatibel.

Wenn Sie die detaillierten Erklärungen und möglichen Ursachen für jeden Fehlercode verstehen, können Sie Verbindungsprobleme bei der Arbeit mit Datenbanken von Aurora MySQL besser beheben und lösen.

Empfehlungen zur Parameteroptimierung für Aurora MySQL

Maximale Anzahl der Verbindungen

Durch die Anpassung dieser Parameter können Verbindungsprobleme vermieden werden, die durch das Erreichen des maximal zulässigen Verbindungslimits verursacht werden. Stellen Sie sicher, dass diese Werte entsprechend den Parallelitätsanforderungen und Ressourcenbeschränkungen Ihrer Anwendung festgelegt sind.

  • max_connections – Dieser Parameter gibt die maximale Anzahl an gleichzeitigen Verbindungen zur DB-Instance an.

  • max_user_connections – Dieser Parameter kann bei der Benutzererstellung und -änderung angegeben werden und legt die maximale Anzahl gleichzeitiger Verbindungen fest, die für ein bestimmtes Benutzerkonto zulässig sind.

Größe des Netzwerkpuffers

Eine Erhöhung dieser Werte kann die Netzwerkleistung verbessern, insbesondere bei Workloads mit großen Datenübertragungen oder Ergebnismengen. Seien Sie jedoch vorsichtig, da größere Puffergrößen mehr Speicher verbrauchen können.

  • net_buffer_length – Dieser Parameter legt die Anfangsgröße für Client-Verbindungen und Ergebnispuffer fest und sorgt so für ein ausgewogenes Verhältnis zwischen Speichernutzung und Abfrageleistung.

  • max_allowed_packet – Dieser Parameter gibt die maximale Größe eines einzelnen Netzwerkpakets an, das von der DB-Instance gesendet oder empfangen werden kann.

Netzwerkkomprimierung (clientseitig)

Durch die Aktivierung der Netzwerkkomprimierung kann die Nutzung der Netzwerkbandbreite reduziert werden, sie kann jedoch den client- als auch den serverseitigen CPU-Overhead erhöhen.

  • compress— Dieser Parameter aktiviert oder deaktiviert die Netzwerkkomprimierung für die Kommunikation. client/server

  • compress_protocol – Dieser Parameter gibt das Komprimierungsprotokoll an, das für die Netzwerkkommunikation verwendet werden soll.

Optimierung der Netzwerkleistung

Die Anpassung dieser Timeouts kann dazu beitragen, inaktive Verbindungen zu verwalten und eine Erschöpfung der Ressourcen zu verhindern. Gehen Sie mit Bedacht vor, da niedrige Werte zu vorzeitigen Verbindungsabbrüchen führen können.

  • interactive_timeout – Dieser Parameter gibt an, wie viele Sekunden der Server auf Aktivitäten in einer interaktiven Verbindung wartet, bevor er sie schließt.

  • wait_timeout – Dieser Parameter bestimmt die Anzahl der Sekunden, die der Server auf Aktivität für eine nicht interaktive Verbindung wartet, bevor er sie schließt.

Einstellungen für Netzwerk-Timeouts

Durch die Anpassung dieser Timeouts können Probleme im Zusammenhang mit langsamen oder nicht reagierenden Verbindungen behoben werden. Achten Sie jedoch darauf, sie nicht zu niedrig einzustellen, da dies zu vorzeitigen Verbindungsausfällen führen kann.

  • net_read_timeout – Dieser Parameter gibt an, wie viele Sekunden auf weitere Daten von einer Verbindung gewartet werden soll, bevor der Lesevorgang beendet wird.

  • net_write_timeout – Dieser Parameter bestimmt, wie viele Sekunden gewartet werden soll, bis ein Block in eine Verbindung geschrieben wird, bevor der Schreibvorgang beendet wird.

Beispiele für die Behebung von Datenbankverbindungsproblemen für Aurora MySQL

Die folgenden Beispiele zeigen, wie Datenbankverbindungsprobleme für Aurora MySQL identifiziert und behoben werden können.

Beispiel 1: Fehlerbehebung bei fehlgeschlagenen Verbindungsversuchen

Verbindungsversuche können aus verschiedenen Gründen fehlschlagen, darunter Authentifizierungsfehler, SSL/TLS Handshake-Fehler, erreichtes max_connections Limit und Ressourcenbeschränkungen für die DB-Instance.

Sie können die Anzahl der fehlgeschlagenen Verbindungen entweder in Performance Insights oder mit dem folgenden Befehl verfolgen.

mysql> show global status like 'aborted_connects'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | Aborted_connects | 7 | +------------------+-------+ 1 row in set (0.00 sec)

Wenn sich die Anzahl der Aborted_connects im Laufe der Zeit erhöht, kann es bei der Anwendung zu zeitweiligen Verbindungsproblemen kommen.

Sie können Advanced Auditing von Aurora verwenden, um die hergestellten und getrennten Client-Verbindungen zu protokollieren. Legen Sie hierzu die folgenden Parameter in der DB-Cluster-Parametergruppe fest:

  • server_audit_logging = 1

  • server_audit_events = CONNECT

Im Folgenden finden Sie einen Auszug aus den Prüfprotokollen für eine fehlgeschlagene Anmeldung.

1728498527380921,auora-mysql-node1,user_1,172.31.49.222,147189,0,FAILED_CONNECT,,,1045 1728498527380940,auora-mysql-node1,user_1,172.31.49.222,147189,0,DISCONNECT,,,0

Wobei Folgendes gilt:

  • 1728498527380921 – Der Epochenzeitstempel für den Zeitpunkt der fehlgeschlagene Anmeldung

  • aurora-mysql-node1 – Die Instance-ID des Knotens des Aurora MySQL-Clusters, auf dem die Verbindung fehlgeschlagen ist

  • user_1 – Der Name des Datenbankbenutzers, für den die Anmeldung fehlgeschlagen ist

  • 172.31.49.222 – Die private IP-Adresse des Clients, über den die Verbindung hergestellt wurde

  • 147189 – Die Verbindungs-ID der fehlgeschlagenen Anmeldung

  • FAILED_CONNECT – Zeigt an, dass die Verbindung fehlgeschlagen ist

  • 1045 – Der Rückgabecode Ein Wert ungleich Null weist auf einen Fehler hin. In diesem Fall entspricht 1045 der Zugriffsverweigerung.

Weitere Informationen finden Sie unter Server error codes und Client error codes in der MySQL-Dokumentation.

Sie können die Aurora MySQL-Fehlerprotokolle auch auf verwandte Fehlermeldungen untersuchen, zum Beispiel:

2024-10-09T19:26:59.310443Z 220 [Note] [MY-010926] [Server] Access denied for user 'user_1'@'172.31.49.222' (using password: YES) (sql_authentication.cc:1502)

Beispiel 2: Behebung ungewöhnlicher Trennungen von Client-Verbindungen

Sie können die Anzahl ungewöhnlicher Client-Verbindungsabbrüche entweder in Performance Insights oder mit dem folgenden Befehl verfolgen.

mysql> show global status like 'aborted_clients'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | Aborted_clients | 9 | +-----------------+-------+ 1 row in set (0.01 sec)

Wenn die Anzahl der Aborted_clients im Laufe der Zeit zunimmt, schließt die Anwendung die Verbindungen zur Datenbank nicht ordnungsgemäß. Wenn Verbindungen nicht ordnungsgemäß geschlossen werden, kann dies zu Ressourcenlecks und potenziellen Leistungsproblemen führen. Wenn Verbindungen unnötigerweise geöffnet bleiben, können Systemressourcen wie Speicher und Dateideskriptoren verbraucht werden, was letztendlich dazu führen kann, dass die Anwendung oder der Server nicht mehr reagiert oder neu gestartet wird.

Mit der folgenden Abfrage können Sie Konten identifizieren, die Verbindungen nicht ordnungsgemäß schließen. Sie ruft den Namen des Benutzerkontos, den Host, über den der Benutzer eine Verbindung herstellt, die Anzahl der nicht geschlossenen Verbindungen und den Prozentsatz der nicht geschlossenen Verbindungen ab.

SELECT ess.user, ess.host, (a.total_connections - a.current_connections) - ess.count_star AS not_closed, (((a.total_connections - a.current_connections) - ess.count_star) * 100) / (a.total_connections - a.current_connections) AS pct_not_closed FROM performance_schema.events_statements_summary_by_account_by_event_name AS ess JOIN performance_schema.accounts AS a ON (ess.user = a.user AND ess.host = a.host) WHERE ess.event_name = 'statement/com/quit' AND (a.total_connections - a.current_connections) > ess.count_star; +----------+---------------+------------+----------------+ | user | host | not_closed | pct_not_closed | +----------+---------------+------------+----------------+ | user1 | 172.31.49.222 | 1 | 33.3333 | | user1 | 172.31.93.250 | 1024 | 12.1021 | | user2 | 172.31.93.250 | 10 | 12.8551 | +----------+---------------+------------+----------------+ 3 rows in set (0.00 sec)

Nachdem Sie die Benutzerkonten und Hosts identifiziert haben, von denen aus die Verbindungen nicht geschlossen werden, können Sie den Code überprüfen, der die Verbindungen nicht ordnungsgemäß schließt.

Verwenden Sie beispielsweise mit dem MySQL-Konnektor in Python die Methode close() des Verbindungsobjekts, um Verbindungen zu schließen. Hier finden Sie eine Beispielfunktion, die eine Verbindung zu einer Datenbank herstellt, eine Abfrage durchführt und die Verbindung schließt:

import mysql.connector def execute_query(query): # Establish a connection to the database connection = mysql.connector.connect( host="your_host", user="your_username", password="your_password", database="your_database" ) try: # Create a cursor object cursor = connection.cursor() # Execute the query cursor.execute(query) # Fetch and process the results results = cursor.fetchall() for row in results: print(row) finally: # Close the cursor and connection cursor.close() connection.close()

In diesem Beispiel wird die Methode connection.close() im Block finally aufgerufen, um sicherzustellen, dass die Verbindung geschlossen wird, unabhängig davon, ob eine Ausnahme auftritt oder nicht.

Beispiel 3: Problembehandlung bei fehlgeschlagenen IAM-Verbindungsversuchen

Die Konnektivität mit AWS Identity and Access Management (IAM) -Benutzern kann aus verschiedenen Gründen fehlschlagen, z. B.:

  • Falsche IAM-Richtlinienkonfiguration

  • Abgelaufene Sicherheitsnachweise

  • Probleme mit der Netzwerkkonnektivität

  • Die Datenbankberechtigungen stimmen nicht überein

Um diese Authentifizierungsfehler zu beheben, aktivieren iam-db-auth-error Sie die Protokollexportfunktion in Ihrer Amazon Relational Database Service (RDS) - oder Aurora-Datenbank. Auf diese Weise können Sie detaillierte Authentifizierungsfehlermeldungen in der CloudWatch Protokollgruppe für Ihren Amazon RDS- oder Amazon Aurora Aurora-Cluster anzeigen.

Nach der Aktivierung können Sie diese Protokolle überprüfen, um die spezifische Ursache Ihrer IAM-Authentifizierungsfehler zu ermitteln und zu beheben.

Zum Beispiel:

2025-09-22T12:02:30,806 [ERROR] Failed to authorize the connection request for user 'user_1' due to an internal IAM DB Auth error. (Status Code: 500, Error Code: InternalError)

und

2025-09-22T12:02:51,954 [ERROR] Failed to authenticate the connection request for user 'user_2' because the provided token is malformed or otherwise invalid. (Status Code: 400, Error Code: InvalidToken)

Anleitungen zur Fehlerbehebung finden Sie im Aurora-Leitfaden zur Fehlerbehebung für die IAM-DB-Authentifizierung.