Résolution des problèmes de connexion pour les SQL bases de données Aurora My SQL RDS - Amazon Aurora

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Résolution des problèmes de connexion pour les SQL bases de données Aurora My SQL RDS

Garantir une connectivité fiable entre vos applications et votre RDS instance de base de données est crucial pour le bon fonctionnement de vos charges de travail. Cependant, les problèmes de connectivité peuvent survenir en raison de divers facteurs, tels que les configurations réseau, les problèmes d'authentification ou les contraintes de ressources. Ce guide vise à fournir une approche complète pour résoudre les problèmes de connectivité avec Aurora My SQL RDS .

Identification des problèmes de connectivité à la base de données pour Aurora My SQL RDS

L'identification de la catégorie spécifique du problème de connectivité peut aider à en déterminer les causes potentielles et à orienter le processus de résolution des problèmes. Chaque catégorie peut nécessiter des approches et des techniques différentes pour le diagnostic et la résolution. Les problèmes de connectivité des bases de données peuvent généralement être classés dans les catégories suivantes.

Erreurs de connexion et exceptions

Des erreurs de connexion et des exceptions peuvent survenir pour diverses raisons, telles que des chaînes de connexion incorrectes, des échecs d'authentification, des perturbations du réseau ou des problèmes de serveur de base de données. Les causes peuvent inclure des paramètres de connexion mal configurés, des informations d'identification non valides, des pannes de réseau ou des pannes ou redémarrages de serveurs de base de données. Les groupes de sécurité mal configurés, les paramètres du cloud privé virtuel (VPC), les listes de contrôle d'accès réseau (ACLs) et les tables de routage associées aux sous-réseaux peuvent également entraîner des problèmes de connexion.

Limite de connexion atteinte

Ce problème survient lorsque le nombre de connexions simultanées au serveur de base de données dépasse la limite maximale autorisée. Les serveurs de base de données ont généralement une limite de connexion maximale configurable définie par le paramètre max_connections dans les clusters et les groupes de paramètres d'instance. En imposant une limite de connexion, le serveur de base de données s'assure qu'il dispose de suffisamment de ressources (par exempleCPU, mémoire et descripteurs de fichiers) pour gérer efficacement les connexions existantes et fournir des performances acceptables. Les causes peuvent inclure des fuites de connexion dans l'application, un regroupement de connexions inefficace ou une augmentation inattendue du nombre de demandes de connexion.

Expiration des délais de connexion

Les délais de connexion se produisent lorsque l'application cliente ne parvient pas à établir une connexion avec le serveur de base de données dans un délai spécifié. Les causes courantes incluent les problèmes de réseau, la surcharge du serveur, les règles de pare-feu et les paramètres de connexion mal configurés.

Expiration des délais de connexion inactifs

Les connexions inactives qui restent inactives pendant une période prolongée peuvent être fermées automatiquement par le serveur de base de données pour économiser les ressources. Ce délai est généralement configurable à l'aide du paramètre wait_timeout and et interactive_timeout parameters doit être ajusté en fonction des modèles d'utilisation des connexions de l'application. Les causes peuvent inclure une logique d'application qui laisse les connexions inactives pendant de longues périodes ou une mauvaise gestion des connexions.

Déconnexion intermittente des connexions existantes

Cette catégorie d'erreurs fait référence à un scénario dans lequel les connexions établies entre une application cliente et la base de données sont interrompues de façon inattendue ou déconnectées à intervalles irréguliers, alors qu'elles sont actives et en cours d'utilisation. Ces déconnexions se produisent par intermittence, c'est-à-dire qu'elles se produisent à des intervalles irréguliers et de manière irrégulière. Les causes peuvent être les suivantes :

  • Problèmes liés au serveur de base de données, tels que les redémarrages ou les basculements

  • Gestion incorrecte des connexions aux applications

  • Problèmes d'équilibrage de charge et de proxy

  • Instabilité du réseau

  • Problèmes liés aux composants tiers ou aux intergiciels impliqués dans le chemin de connexion

  • Délais d'exécution des requêtes

  • Contraintes de ressources côté serveur ou côté client

Il est essentiel d'identifier la cause première grâce à une surveillance, une journalisation et une analyse complètes, tandis que la mise en œuvre de mécanismes appropriés de gestion des erreurs, de regroupement des connexions et de nouvelles tentatives peut contribuer à atténuer l'impact de ces déconnexions intermittentes sur les fonctionnalités de l'application et l'expérience utilisateur.

Collecte de données sur les problèmes de connectivité pour Aurora My SQL RDS

La collecte de données complètes relatives aux composants de l'application, de la base de données, du réseau et de l'infrastructure est essentielle pour résoudre efficacement les problèmes de connectivité entre une application et une SQL base de données Aurora My SQL RDS . En collectant les journaux, les configurations et les informations de diagnostic pertinents, vous obtenez des informations précieuses qui peuvent vous aider à identifier la cause première des problèmes de connectivité et à vous guider vers une résolution appropriée.

Les journaux et les configurations réseau, tels que les règles, les VPC paramètres et les tables de routage des groupes de sécurité, sont essentiels pour identifier les éventuels goulots d'étranglement ou les erreurs de configuration liés au réseau susceptibles d'empêcher l'application d'établir une connexion réussie avec la base de données. En analysant ces composants réseau, vous pouvez vous assurer que les ports nécessaires sont ouverts, que les adresses IP sont autorisées et que les configurations de routage sont correctement configurées.

Horodatages

Enregistrez les horodatages exacts lorsque les problèmes de connectivité surviennent. Cela peut aider à identifier des modèles ou à corréler les problèmes avec d'autres événements ou activités.

journaux du moteur de base de données

Outre les journaux de base de données généraux, consultez les journaux du moteur de base de données (par exemple, le journal Mes SQL erreurs et le journal des requêtes lentes) pour toute information ou erreur pertinente susceptible d'être liée aux problèmes de connectivité intermittents. Pour de plus amples informations, veuillez consulter Journalisation pour les bases de données Aurora MySQL.

Journaux des applications clientes

Collectez des journaux détaillés auprès des applications clientes qui se connectent à la base de données. Les journaux d'application fournissent une visibilité sur les tentatives de connexion, les erreurs et toute information pertinente du point de vue de l'application, qui peut révéler des problèmes liés aux chaînes de connexion, aux informations d'authentification ou à la gestion des connexions au niveau de l'application.

Les journaux de base de données, quant à eux, fournissent des informations sur les erreurs liées à la base de données, la lenteur des requêtes ou les événements susceptibles de contribuer aux problèmes de connectivité. Pour de plus amples informations, veuillez consulter Journalisation pour les bases de données Aurora MySQL.

Variables d'environnement client

Vérifiez si des variables d'environnement ou des paramètres de configuration côté client peuvent affecter la connexion à la base de données, tels que les paramètres proxy, TLS les paramètresSSL/ou toute autre variable pertinente.

Versions de la bibliothèque cliente

Assurez-vous que le client utilise les dernières versions de tous les pilotes de base de données, bibliothèques ou frameworks utilisés pour la connectivité aux bases de données. Les versions obsolètes peuvent présenter des problèmes connus ou des problèmes de compatibilité.

Capture du réseau client

Effectuez une capture réseau côté client à l'aide d'un outil tel que Wireshark ou tcpdump lorsque des problèmes de connectivité surviennent. Cela peut aider à identifier les problèmes ou anomalies liés au réseau du côté du client.

Topologie du réseau client

Comprenez la topologie du réseau du client, y compris les pare-feux, les équilibreurs de charge ou les autres composants tels que le RDS proxy ou le proxy SQL qui établissent des connexions à la base de données au lieu que le client établisse directement des connexions.

Paramètres du système d'exploitation du client

Vérifiez les paramètres du système d'exploitation du client susceptibles d'affecter la connectivité réseau, tels que les règles de pare-feu, les paramètres de l'adaptateur réseau et tout autre paramètre pertinent.

Configuration du regroupement de connexions

Si vous utilisez un mécanisme de regroupement de connexions dans votre application, passez en revue les paramètres de configuration et surveillez les indicateurs du pool (par exemple, les connexions actives, les connexions inactives et les délais d'expiration des connexions) pour vous assurer que le pool fonctionne correctement. Vérifiez également les paramètres du pool, tels que la taille maximale du pool, la taille minimale du pool et les paramètres de validation de connexion, pour vous assurer qu'ils sont correctement configurés.

Chaîne de connexion

La chaîne de connexion inclut généralement des paramètres tels que le nom d'hôte ou de point de terminaison, le numéro de port, le nom de la base de données et les informations d'authentification. L'analyse de la chaîne de connexion peut aider à identifier les erreurs de configuration potentielles ou les paramètres incorrects susceptibles de provoquer des problèmes de connectivité. Par exemple, un nom d'hôte ou un numéro de port incorrect peut empêcher le client d'accéder à l'instance de base de données, tandis que des informations d'authentification non valides peuvent entraîner des échecs d'authentification et des rejets de connexion. En outre, la chaîne de connexion peut révéler des problèmes liés au regroupement des connexions, aux délais d'expiration ou à d'autres paramètres spécifiques à la connexion susceptibles de contribuer aux problèmes de connectivité. La fourniture de la chaîne de connexion complète utilisée par l'application cliente peut aider à identifier les erreurs de configuration sur le client.

Métriques de base de données

Surveillez les indicateurs de base de données tels que CPU l'utilisation, l'utilisation de la mémoire et les E/S du disque lorsque des problèmes de connectivité surviennent. Ils peuvent aider à déterminer si l'instance de base de données est confrontée à des problèmes de contention des ressources ou de performances.

Version du moteur de base de données

Notez la version du moteur Aurora My SQL RDS DB. AWS publie régulièrement des mises à jour traitant des problèmes connus, des vulnérabilités de sécurité et introduisant des améliorations de performances. Par conséquent, nous vous recommandons vivement de passer aux dernières versions disponibles, car ces mises à jour incluent souvent des corrections de bogues et des améliorations spécifiquement liées à la connectivité, aux performances et à la stabilité. Fournir les informations de version de la base de données, ainsi que les autres informations collectées, peut aider Support à diagnostiquer et à résoudre efficacement les problèmes de connectivité.

Métriques du réseau

Collectez des indicateurs réseau tels que la latence, la perte de paquets et le débit lorsque des problèmes de connectivité surviennent. Des outils tels que pingtraceroute, et les outils de surveillance du réseau peuvent aider à recueillir ces données.

Informations sur la source et le client

Déterminez les adresses IP des serveurs d'applications, des équilibreurs de charge ou de tout autre composant qui initie les connexions à la base de données. Il peut s'agir d'une adresse IP unique ou d'une plage d'adresses IP (CIDRnotation). Si la source est une EC2 instance Amazon, il est également utile de vérifier le type d'instance, la zone de disponibilité, l'ID de sous-réseau et les groupes de sécurité associés à l'instance, ainsi que les détails de l'interface réseau tels que l'adresse IP privée et l'adresse IP publique.

En analysant minutieusement les données collectées, vous pouvez identifier les erreurs de configuration, les contraintes de ressources, les perturbations du réseau ou les autres problèmes sous-jacents à l'origine des problèmes de connectivité intermittents ou persistants. Ces informations vous permettent de prendre des mesures ciblées, telles que l'ajustement des configurations, la résolution des problèmes de réseau ou la gestion des connexions au niveau de l'application.

Surveillance des connexions aux bases de données pour Aurora My SQL RDS

Pour surveiller et résoudre les problèmes de connectivité, vous pouvez utiliser les mesures et fonctionnalités suivantes.

CloudWatch métriques
  • CPUUtilization— Une CPU utilisation élevée de l'instance de base de données peut ralentir l'exécution des requêtes, ce qui peut entraîner des délais d'expiration ou des rejets de connexion.

  • DatabaseConnections— Surveille le nombre de connexions actives à l'instance de base de données. Un nombre élevé de connexions proche du maximum configuré peut indiquer des problèmes de connectivité potentiels ou l'épuisement du pool de connexions.

  • FreeableMemory— La faible quantité de mémoire disponible peut entraîner des problèmes de performances et de connectivité en raison de contraintes de ressources.

  • NetworkReceiveThroughputet NetworkTransmitThroughput — Des pics ou des baisses inhabituels du débit réseau peuvent indiquer des problèmes de connectivité ou des goulots d'étranglement du réseau.

Métriques de Performance Insights

Pour résoudre les problèmes de connectivité dans Aurora My SQL à SQL l'aide de Performance Insights, analysez les indicateurs de base de données tels que les suivants :

  • Aborted_clients

  • Aborted_connects

  • Connexions

  • max_connections

  • Threads_connected

  • Threads_created

  • Threads_running

Ces mesures peuvent vous aider à identifier les goulots d'étranglement de connexion, à détecter les problèmes de réseau ou d'authentification, à optimiser le regroupement des connexions et à garantir une gestion efficace des threads. Pour de plus amples informations, veuillez consulter Compteurs Performance Insights pour Aurora My SQL.

Fonctionnalités de Performance Insights
  • Chargement de la base de données : visualisez la charge de la base de données au fil du temps et corrélez-la aux problèmes de connectivité ou à la dégradation des performances.

  • SQLStatistiques : analysez les SQL statistiques pour identifier les requêtes ou les opérations de base de données inefficaces susceptibles d'entraîner des problèmes de connectivité.

  • Principales requêtes : identifiez et analysez les requêtes les plus gourmandes en ressources, ce qui peut aider à identifier les problèmes de performance potentiels ou les requêtes de longue durée susceptibles de provoquer des problèmes de connectivité.

En surveillant ces indicateurs et en tirant parti de Performance Insights, vous pouvez obtenir une meilleure visibilité sur les performances de l'instance de base de données, l'utilisation des ressources et les goulets d'étranglement potentiels susceptibles d'être à l'origine de problèmes de connectivité. Par exemple :

  • Un niveau DatabaseConnections proche de la limite maximale peut indiquer l'épuisement du pool de connexions ou une mauvaise gestion des connexions, entraînant des problèmes de connectivité.

  • Un niveau élevé CPUUtilization ou faible FreeableMemory peut indiquer des contraintes de ressources, ce qui peut ralentir l'exécution des requêtes et provoquer des délais d'expiration ou des rejets de connexion.

  • L'analyse des principales requêtes et SQLstatistiques peut aider à identifier les requêtes inefficaces ou gourmandes en ressources susceptibles de contribuer aux problèmes de connectivité.

En outre, la surveillance CloudWatch des journaux et la configuration d'alarmes peuvent vous aider à identifier les problèmes de connectivité et à y répondre de manière proactive avant qu'ils ne s'aggravent.

Il est important de noter que si ces indicateurs et outils peuvent fournir des informations précieuses, ils doivent être utilisés conjointement avec d'autres étapes de résolution des problèmes. En examinant également les configurations réseau, les règles des groupes de sécurité et la gestion des connexions au niveau de l'application, vous pouvez diagnostiquer et résoudre de manière exhaustive les problèmes de connectivité avec les instances Aurora My SQL RDS for My SQL .

Surveillance supplémentaire pour Aurora My SQL

CloudWatch métriques
  • AbortedClients— Suit le nombre de connexions client qui n'ont pas été correctement fermées.

  • AuroraSlowConnectionHandleCount— Suit le nombre d'opérations de gestion des connexions lentes, en indiquant les problèmes de connectivité potentiels ou les goulots d'étranglement liés aux performances.

  • AuroraSlowHandshakeCount— Mesure le nombre d'opérations de poignée de main lentes, ce qui peut également être un indicateur de problèmes de connectivité.

  • ConnectionAttempts— Mesure le nombre de tentatives de connexion effectuées à l'instance de base de SQL données Aurora My.

Variables d'état globales

Aurora_external_connection_count— Indique le nombre de connexions de base de données à l'instance de base de données, à l'exception des connexions RDS de service utilisées pour les contrôles de santé de la base de données.

En surveillant ces métriques et ces variables d'état globales, vous pouvez obtenir une meilleure visibilité sur les modèles de connexion, les erreurs et les goulots d'étranglement potentiels susceptibles de provoquer des problèmes de connectivité avec votre instance Amazon Aurora My. SQL

Par exemple, un nombre élevé de AbortedClients ou AuroraSlowConnectionHandleCount peut indiquer des problèmes de connectivité.

En outre, la configuration d' CloudWatch alarmes et de notifications peut vous aider à identifier les problèmes de connectivité et à y répondre de manière proactive avant qu'ils ne s'aggravent et n'affectent les performances de votre application.

Codes d'erreur de connectivité pour Aurora My SQL RDS

Voici quelques erreurs de connectivité courantes pour les SQL bases de données Aurora My SQL RDS , ainsi que leurs codes d'erreur et leurs explications.

Code d'erreur 1040 : trop de connexions

Cette erreur se produit lorsque le client essaie d'établir un nombre de connexions supérieur au maximum autorisé par le serveur de base de données. Les causes possibles sont notamment les suivantes :

  • Mauvaise configuration du pool de connexions — Si vous utilisez un mécanisme de regroupement de connexions, assurez-vous que la taille maximale du pool n'est pas trop élevée et que les connexions sont correctement rétablies dans le pool.

  • Configuration de l'instance de base de données : vérifiez le paramètre de connexions maximales autorisées pour l'instance de base de données et ajustez-le si nécessaire en définissant le max_connections paramètre.

  • Haute simultanéité : si plusieurs clients ou applications se connectent simultanément à la base de données, la limite maximale de connexions autorisées peut être atteinte.

Code d'erreur 1045 : Accès refusé à l'utilisateur '...' @ '...' (en utilisant le mot de passe : YES /NO)

Cette erreur indique un échec d'authentification lors de la tentative de connexion à la base de données. Les causes possibles sont notamment les suivantes :

  • Compatibilité des plug-ins d'authentification : vérifiez si le plug-in d'authentification utilisé par le client est compatible avec le mécanisme d'authentification du serveur de base de données.

  • Nom d'utilisateur ou mot de passe incorrect : vérifiez que le nom d'utilisateur et le mot de passe utilisés dans la chaîne de connexion ou le mécanisme d'authentification sont corrects.

  • Autorisations utilisateur : assurez-vous que l'utilisateur dispose des autorisations nécessaires pour se connecter à l'instance de base de données depuis l'hôte ou le réseau spécifié.

Code d'erreur 1049 : base de données inconnue «... »

Cette erreur indique que le client tente de se connecter à une base de données qui n'existe pas sur le serveur. Les causes possibles sont notamment les suivantes :

  • Base de données non créée : assurez-vous que la base de données spécifiée a été créée sur le serveur de base de données.

  • Nom de base de données incorrect : vérifiez l'exactitude du nom de base de données utilisé dans la chaîne de connexion ou dans la requête.

  • Autorisations utilisateur : vérifiez que l'utilisateur dispose des autorisations nécessaires pour accéder à la base de données spécifiée.

Code d'erreur 1153 : J'ai reçu un paquet d'une taille supérieure à « max_allowed_packet » en octets

Cette erreur se produit lorsque le client tente d'envoyer ou de recevoir des données dont la taille de paquet dépasse la taille maximale autorisée par le serveur de base de données. Les causes possibles sont notamment les suivantes :

  • Requêtes ou ensembles de résultats volumineux : si vous exécutez des requêtes impliquant de grandes quantités de données, la limite de taille des paquets peut être dépassée.

  • Paramètres de taille de paquet mal configurés : vérifiez le max_allowed_packet paramètre sur le serveur de base de données et ajustez-le si nécessaire.

  • Problèmes de configuration réseau — Assurez-vous que la configuration réseau (par exemple, MTU la taille) autorise les tailles de paquets requises.

Code d'erreur 1226 : L'utilisateur «... » a dépassé la ressource « max_user_connections » (valeur actuelle :...)

Cette erreur indique que l'utilisateur a dépassé le nombre maximal de connexions simultanées autorisées par le serveur de base de données. Les causes possibles sont les suivantes :

  • Mauvaise configuration du pool de connexions — Si vous utilisez un mécanisme de regroupement de connexions, assurez-vous que la taille maximale du pool n'est pas trop élevée par rapport à la limite de connexion de l'utilisateur.

  • Configuration de l'instance de base de données : vérifiez le max_user_connections paramètre de l'instance de base de données et ajustez-le si nécessaire.

  • Haute simultanéité : si plusieurs clients ou applications se connectent simultanément à la base de données en utilisant le même utilisateur, la limite de connexion spécifique à l'utilisateur peut être atteinte.

Code d'erreur 2003 : Impossible de se connecter à mon SQL serveur sur «... » (10061)

Cette erreur se produit généralement lorsque le client ne parvient pas à établir une connexion TCP /IP avec le serveur de base de données. Cela peut être dû à divers problèmes, tels que les suivants :

  • État de l'instance de base de données : assurez-vous que l'instance de base de données est dans available cet état et qu'elle ne fait l'objet d'aucune opération de maintenance ou de sauvegarde.

  • Règles de pare-feu : vérifiez si des pare-feux (système d'exploitation, réseau ou groupe de sécurité) bloquent la connexion sur le port spécifié (généralement 3306 pour MySQL).

  • Nom d'hôte ou point de terminaison incorrect : assurez-vous que le nom d'hôte ou de point de terminaison utilisé dans la chaîne de connexion est correct et correspond à l'instance de base de données.

  • Problèmes de connectivité réseau : vérifiez que la machine cliente peut accéder à l'instance de base de données via le réseau. Vérifiez les pannes de réseau, les problèmes de routage VPC ou les erreurs de configuration des sous-réseaux.

Code d'erreur 2005 : inconnu Mon hôte de SQL serveur '...' (11001)

Cette erreur se produit lorsque le client ne parvient pas à convertir le nom d'hôte ou le point de terminaison du serveur de base de données en adresse IP. Les causes possibles sont notamment les suivantes :

  • DNSproblèmes de résolution — Vérifiez que la machine cliente peut résoudre correctement le nom d'hôte à l'aide DNS de. Vérifiez les DNS paramètres, le DNS cache et essayez d'utiliser l'adresse IP au lieu du nom d'hôte.

  • Nom d'hôte ou point de terminaison incorrect : vérifiez l'exactitude du nom d'hôte ou du point de terminaison utilisé dans la chaîne de connexion.

  • Problèmes de configuration réseau : assurez-vous que la configuration réseau du client (par exempleVPC, sous-réseau et tables de routage) permet la DNS résolution et la connectivité à l'instance de base de données.

Code d'erreur 2026 : erreur de SSL connexion

Cette erreur se produit en cas de problème avec la TLS configurationSSL/ou la validation du certificat lors de la tentative de connexion. Les causes possibles sont notamment les suivantes :

  • Expiration du certificat — Vérifiez si le TLS certificatSSL/utilisé par le serveur a expiré et doit être renouvelé.

  • Problèmes de validation des certificats — Vérifiez que le client est capable de valider correctement le TLS certificatSSL/du serveur et que le certificat est fiable.

  • Problèmes de configuration réseau — Assurez-vous que la configuration réseau autorise le processus de prise SSL/TLS connections and doesn't block or interfere with the SSL/TLS de contact.

  • SSL/TLS configuration mismatch – Make sure that the SSL/TLSles paramètres (par exemple, les suites de chiffrement et les versions de protocole) sur le client et le serveur sont compatibles.

En comprenant les explications détaillées et les causes potentielles de chaque code d'erreur, vous pouvez mieux résoudre les problèmes de connectivité lorsque vous travaillez avec les SQL bases de données Aurora My SQL RDS .

Recommandations de réglage des paramètres pour Aurora My SQL RDS

Nombre maximal de connexions

Le réglage de ces paramètres permet d'éviter les problèmes de connexion provoqués par l'atteinte de la limite maximale de connexions autorisées. Assurez-vous que ces valeurs sont définies de manière appropriée en fonction des exigences de simultanéité et des contraintes de ressources de votre application.

  • max_connections— Ce paramètre spécifie le nombre maximal de connexions simultanées autorisées à l'instance de base de données.

  • max_user_connections— Ce paramètre peut être spécifié lors de la création et de la modification d'un utilisateur et définit le nombre maximal de connexions simultanées autorisées pour un compte utilisateur spécifique.

Taille de la mémoire tampon réseau

L'augmentation de ces valeurs peut améliorer les performances du réseau, en particulier pour les charges de travail impliquant des transferts de données ou des ensembles de résultats importants. Soyez toutefois prudent, car des tampons de plus grande taille peuvent consommer plus de mémoire.

  • net_buffer_length— Ce paramètre définit la taille initiale de la connexion client et des tampons de résultats, en équilibrant l'utilisation de la mémoire avec les performances des requêtes.

  • max_allowed_packet— Ce paramètre spécifie la taille maximale d'un seul paquet réseau qui peut être envoyé ou reçu par l'instance de base de données.

Compression réseau (côté client)

L'activation de la compression réseau peut réduire l'utilisation de la bande passante réseau, mais elle peut augmenter la CPU charge du client et du côté serveur.

  • compress— Ce paramètre active ou désactive la compression réseau pour les communications client/serveur.

  • compress_protocol— Ce paramètre spécifie le protocole de compression à utiliser pour les communications réseau.

Réglage des performances du réseau

Le réglage de ces délais peut aider à gérer les connexions inactives et à éviter l'épuisement des ressources, mais soyez prudent car de faibles valeurs peuvent entraîner des interruptions de connexion prématurées.

  • interactive_timeout— Ce paramètre indique le nombre de secondes pendant lesquelles le serveur attend une activité sur une connexion interactive avant de la fermer.

  • wait_timeout— Ce paramètre détermine le nombre de secondes pendant lesquelles le serveur attend une activité sur une connexion non interactive avant de la fermer.

Paramètres du délai d'expiration du réseau

Le réglage de ces délais peut aider à résoudre les problèmes liés à la lenteur ou à l'absence de réponse des connexions. Mais attention à ne pas les régler trop bas, car cela peut entraîner des défaillances de connexion prématurées.

  • net_read_timeout— Ce paramètre indique le nombre de secondes à attendre pour obtenir plus de données provenant d'une connexion avant de terminer l'opération de lecture.

  • net_write_timeout— Ce paramètre détermine le nombre de secondes à attendre avant qu'un bloc soit écrit sur une connexion avant de terminer l'opération d'écriture.

Exemples de résolution des problèmes de connexion à la base de données pour Aurora My SQL RDS

Les exemples suivants montrent comment identifier et résoudre les problèmes de connexion à la base de données pour Aurora My SQL RDS .

Exemple 1 : résolution des problèmes liés aux tentatives de connexion infructueuses

Les tentatives de connexion peuvent échouer pour plusieurs raisons, notamment les échecs d'authentification, les SSL échecs TLS de connexion, la max_connections limite atteinte et les contraintes de ressources sur l'instance de base de données.

Vous pouvez suivre le nombre de connexions ayant échoué à partir de Performance Insights ou à l'aide de la commande suivante.

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

Si le nombre Aborted_connects augmente au fil du temps, il est possible que l'application rencontre des problèmes de connectivité intermittents.

Vous pouvez utiliser Aurora Advanced Auditing pour enregistrer les connexions et les déconnexions des connexions client. Vous pouvez le faire en définissant les paramètres suivants dans le groupe de paramètres du cluster de base de données :

  • server_audit_logging = 1

  • server_audit_events = CONNECT

Voici un extrait des journaux d'audit relatifs à un échec de connexion.

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

Où :

  • 1728498527380921— L'horodatage de l'époque à laquelle l'échec de connexion s'est produit

  • aurora-mysql-node1— L'identifiant d'instance du nœud du SQL cluster Aurora My sur lequel la connexion a échoué

  • user_1— Le nom de l'utilisateur de base de données pour lequel la connexion a échoué

  • 172.31.49.222— L'adresse IP privée du client à partir duquel la connexion a été établie

  • 147189— L'identifiant de connexion de l'échec de connexion

  • FAILED_CONNECT— Indique que la connexion a échoué.

  • 1045— Le code de retour. Une valeur différente de zéro indique une erreur. Dans ce cas, 1045 correspond à un accès refusé.

Pour plus d'informations, consultez les sections Codes d'erreur du serveur et Codes d'erreur du client dans Ma SQL documentation.

Vous pouvez également consulter les journaux SQL d'erreurs d'Aurora My pour détecter tout message d'erreur associé, par exemple :

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)

Exemple 2 : résolution des problèmes de déconnexion anormale des clients

Vous pouvez suivre le nombre de déconnexions anormales des clients à partir de Performance Insights ou à l'aide de la commande suivante.

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

Si le nombre Aborted_clients augmente au fil du temps, cela signifie que l'application ne ferme pas correctement les connexions à la base de données. Si les connexions ne sont pas correctement fermées, cela peut entraîner des fuites de ressources et des problèmes de performances potentiels. Le fait de laisser les connexions ouvertes inutilement peut consommer des ressources système, telles que la mémoire et les descripteurs de fichiers, ce qui peut éventuellement empêcher l'application ou le serveur de répondre ou de redémarrer.

Vous pouvez utiliser la requête suivante pour identifier les comptes qui ne ferment pas correctement les connexions. Il récupère le nom du compte utilisateur, l'hôte à partir duquel l'utilisateur se connecte, le nombre de connexions non fermées et le pourcentage de connexions non fermées.

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)

Après avoir identifié les comptes utilisateurs et les hôtes à partir desquels les connexions ne sont pas fermées, vous pouvez vérifier le code qui ne ferme pas les connexions correctement.

Par exemple, avec le SQL connecteur My en Python, utilisez la close() méthode de l'objet de connexion pour fermer les connexions. Voici un exemple de fonction qui établit une connexion à une base de données, exécute une requête et ferme la connexion :

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()

Dans cet exemple, la connection.close() méthode est appelée dans le finally bloc pour s'assurer que la connexion est fermée, qu'une exception se produise ou non.