Messages d'erreur dans Cloud SQL pour MySQL

Cette page présente certains des messages d'erreur rencontrés dans Cloud SQL.

Présentation

Les messages d'erreur dans Cloud SQL proviennent de nombreuses sources et apparaissent à de nombreux endroits. Certains messages d'erreur proviennent des moteurs de base de données proprement dits, d'autres du service Cloud SQL ou d'applications clientes, et d'autres sont renvoyés par des appels à l'API Admin Cloud SQL.

Cette page couvre certaines des erreurs les plus courantes rencontrées dans Cloud SQL. Si vous n'y trouvez pas le code d'erreur ou le message qui vous intéresse, vous pouvez les rechercher dans les documents de référence sources ci-dessous :

Si vous ne trouvez pas le document de référence sur le message d'erreur qui s'affiche, vous pouvez également effectuer une recherche sur les sites suivants, où d'autres utilisateurs peuvent avoir une expérience pertinente :

Messages d'erreur liés aux opérations

Connexion annulée

Le message d'erreur Got an error reading communication packets ou Aborted connection xxx to db: DB_NAME s'affiche.

Cause possible

L'erreur Aborted connection indique qu'une application ne met pas fin correctement aux connexions.

Solutions possibles

Vérifiez les conditions suivantes :

  • L'application n'a pas appelé "mysql_close()" avant de quitter.
  • Erreurs de communication.
  • L'application a peut-être été mise en veille pendant un délai supérieur au nombre de secondes spécifié dans wait_timeout ou interactive_timeout sans émettre de requêtes au serveur. Consultez la Section 5.1.7 sur les variables système du serveur (en anglais).
  • L'application s'est arrêtée brusquement pendant un transfert de données.
  • La valeur de la variable max_allowed_packet est peut-être trop petite ou les requêtes nécessitent plus de mémoire que celle allouée à mysqld. Pour résoudre ce problème, remplacez la valeur de l'option max_allowed_packet par un nombre beaucoup plus élevé.


Requête erronée

Le message d'erreur HTTP Error 400 Bad Request s'affiche.

Cause possible

Les requêtes incorrectes peuvent avoir plusieurs causes. L'une des plus courantes est un argument incorrect. Dans ce cas, la requête utilise le mauvais argument ou une valeur d'argument non valide. Pour les nombreuses autres causes possibles, le message d'erreur peut contenir un indice utile.

Solutions possibles

Dans le cas d'un argument incorrect, vérifiez la requête pour vous assurer que chaque argument est autorisé et que sa valeur est valide. Pour toutes les autres causes, consultez les fichiers journaux pour savoir si d'autres informations sont disponibles.


Accès refusé pour l'utilisateur

Le message d'erreur Access denied for user 'XXX'@'XXX' (using password: XXX) s'affiche.

Cause possible

Plusieurs causes sont possibles, dont les suivantes :

  • Le nom d'utilisateur (ou le mot de passe) est incorrect.
  • L'utilisateur se connecte à partir d'une URL autre que @XXX.
  • L'utilisateur ne dispose pas des droits d'accès appropriés pour la base de données à laquelle il tente de se connecter.

Solutions possibles

  • Vérifiez le nom d'utilisateur et le mot de passe correspondant.
  • Vérifiez l'origine de la connexion pour voir si elle correspond à l'URL pour laquelle l'utilisateur dispose de droits d'accès.
  • Vérifiez les droits d'accès de l'utilisateur dans la base de données.

Le disque est saturé

Soit le message d'erreur Disk is full s'affiche, soit vous constatez que l'espace disque est insuffisant.

Cause possible

Le disque de l'instance principale peut arriver à saturation lors de la création de l'instance dupliquée.

Solutions possibles

Modifiez l'instance principale pour la mettre à niveau vers un disque de taille plus importante.


L'activation d'une option fait planter l'instance

Une fois que vous avez activé une option, une boucle se produit entre la panique et le plantage de l'instance.

Cause possible

La définition de l'option max_connections sur une valeur trop élevée est connue pour provoquer cette erreur.

Solutions possibles

Si vous définissez l'option max_connections sur une valeur trop élevée, l'instance ne pourra pas accepter toutes les connexions, ce qui entraînera un message Error 1040: Too many connections et des échecs de pulsation. Contactez le service client pour demander la suppression de l'option et un hard drain. Cela force l'instance à redémarrer sur un autre hôte avec une nouvelle configuration, sans option ni paramètre.


Erreur fatale lors de la mise à niveau

Le message d'erreur ERROR_INTERNAL_FATAL s'affiche lorsque vous mettez à niveau des ressources sur une instance.

Cause possible

Il peut y avoir de nombreuses causes.

Solutions possibles

Les journaux peuvent révéler davantage d'informations. Sinon, contactez le service client pour forcer la recréation de l'instance.


Erreur HTTP 408 : (Expiration du délai) lors de l'exportation

Le message d'erreur HTTP Error 408 (Timeout) s'affiche lors de l'exécution d'une tâche d'exportation dans Cloud SQL.

Cause possible

Les formats CSV et SQL sont exportés de manière différente. Comme le format SQL inclut l'ensemble de la base de données, l'exportation est susceptible de prendre plus de temps. Le format CSV vous permet de spécifier les éléments de la base de données à inclure dans l'opération d'exportation.

Solutions possibles

Utilisez le format CSV et exécutez plusieurs tâches d'exportation plus petites pour réduire le volume et la longueur de chaque opération.


Erreur HTTP 409

Le message d'erreur HTTP Error 409 in a Terraform script ou Error 409 Operation failed because another operation was already in progress s'affiche.

Cause possible

  1. Vérifiez le script Terraform. Il doit attendre la fin de chaque opération avant de commencer la suivante.
  2. HTTP Error 409: Operation failed because another operation was already in progress
  3. Vous tentez de réutiliser le nom d'une instance récemment supprimée pour une nouvelle instance alors que le délai d'attente avant la réutilisation du nom n'est pas écoulé.

Solutions possibles

  1. Si vous exécutez un script Terraform, arrêtez son exécution jusqu'à ce que l'opération de chaque instance se termine. Demandez au script d'effectuer une interrogation et attendez qu'un code 200 soit renvoyé pour l'ID de l'opération précédente. Sinon, attendez la fin de l'opération en cours.
  2. Après avoir supprimé une instance, vous devez attendre une semaine avant de pouvoir réutiliser le même nom pour une nouvelle instance.

Impossible de supprimer l'instance

Message d'erreur

Le message d'erreur ERROR: (gcloud.sql.instances.delete) HTTP Error 409: The instance or operation is not in an appropriate state to handle the request s'affiche ou l'instance affiche INSTANCE_RISKY_FLAG_CONFIG pour l'état de l'option.

Cause possible

  1. Another operation is in progress
  2. L'avertissement INSTANCE_RISKY_FLAG_CONFIG est déclenché chaque fois qu'au moins une option BETA est utilisée.

Solutions possibles

  1. Les opérations Cloud SQL ne s'exécutent pas simultanément. Attendez que l'autre opération se termine.
  2. Supprimez les paramètres risqués de l'option et redémarrez l'instance.

Erreur interne

Le message d'erreur {"ResourceType":"sqladmin.v1beta4.instance", "ResourceErrorCode":"INTERNAL_ERROR","ResourceErrorMessage":null} s'affiche.

Cause possible

Le compte de service de mise en réseau des services requis pour cette fonctionnalité peut ne pas être spécifié pour le projet de service.

Solutions possibles

Pour réparer les autorisations de service, désactivez l'API Service Networking API, attendez cinq minutes, puis réactivez-la.


Erreur MySQL 1040

Le message d'erreur MySQL Error 1040: Too many connections s'affiche.

Cause possible

Cette erreur peut se produire si la valeur de l'option max_connections est trop élevée.

Solutions possibles

Contactez le service client pour demander la suppression de l'option et un hard drain. Cela force l'instance à redémarrer sur un autre hôte avec une nouvelle configuration, sans option ni paramètre.


Échec d'association de réseau

Le message d'erreur Network association failed due to the following error: set Service Networking service account as servicenetworking.serviceAgent role on consumer project s'affiche.

Cause possible

L'API Service Networking API n'est pas activée dans le projet.

Solutions possibles

Activez l'API Service Networking API dans votre projet. Si cette erreur s'affiche lorsque vous tentez d'attribuer une adresse IP privée à une instance Cloud SQL et que vous utilisez un VPC partagé, vous devez également activer l'API Service Networking API pour le projet hôte.


Connexion non autorisée

Le message d'erreur Unauthorized to connect s'affiche.

Cause possible

Il peut exister plusieurs causes, car l'autorisation se produit à plusieurs niveaux.

  • Au niveau de la base de données, il doit exister un utilisateur avec un mot de passe correspondant.
  • Au niveau du projet, l'utilisateur peut ne pas disposer des autorisations IAM appropriées, telles que serviceusage.services.use ou cloudsql.instances.connect.
  • Au niveau du réseau, si l'instance Cloud SQL utilise une adresse IP publique, l'adresse IP source de la connexion doit se trouver dans un réseau autorisé.

Solutions possibles

  • Assurez-vous qu'il existe un utilisateur avec un mot de passe correspondant.
  • Attribuez le rôle Service Usage Consumer au compte utilisateur. Ce rôle inclut l'autorisation serviceusage.services.use.
  • Si vous utilisez une adresse IP publique, assurez-vous que l'adresse IP source se trouve dans un réseau autorisé.

L'opération n'est pas valide pour cette instance

Le message d'erreur HTTP Error 400: This operation isn't valid for this instance provenant d'un appel d'API à instances.restoreBackup s'affiche.

Cause possible

Vous ne pouvez pas effectuer de restauration à partir d'une sauvegarde sur une instance dont la taille de l'espace de stockage (XX Go) est inférieure à celle de la sauvegarde (YY Go).

Solutions possibles

Modifiez l'instance cible afin d'accroître la taille de l'espace de stockage.


Mémoire insuffisante pendant la sauvegarde automatique

Le message d'erreur [ERROR] InnoDB: Write to file ./ibtmp1 failed at offset XXXX, YYYY bytes should have been written, only 0 were written. s'affiche.

Cause possible

L'instance a atteint une limite stricte lors d'une sauvegarde automatique.

Solutions possibles

Vérifiez que votre système d'exploitation et votre système de fichiers acceptent les fichiers de cette taille. Vérifiez que le disque n'est pas saturé ou qu'il ne dépasse pas le quota de disque. Vous pouvez demander une augmentation de vos quotas depuis Google Cloud Console ou modifier l'instance afin de la mettre à niveau vers un disque de taille plus importante.


Quota dépassé

Le message d'erreur RESOURCE_EXHAUSTED: Quota exceeded ou GLOBAL_ADDRESSES_QUOTA_EXCEEDED s'affiche.

Cause possible

Vous avez atteint votre limite de quota par minute ou par jour. Vérifiez les quotas et limites pour Cloud SQL.

Solutions possibles

Demandez une augmentation de vos quotas depuis Google Cloud Console.


Les emplacements de connexion restants sont réservés

Le message d'erreur FATAL: remaining connection slots are reserved for non-replication superuser connections s'affiche.

Cause possible

Le nombre maximal de connexions autorisé a été atteint

Solutions possibles

Augmentez la valeur de l'option max_connections. Notez qu'augmenter le max_connections au-delà d'une certaine valeur entraîne la perte de l'assistance liée au contrat de niveau de service. Consultez la page Configurer des options de base de données.


Il manque une clé API valide dans la requête

Le message d'erreur HTTP Error 403: PERMISSION_DENIED. The request is missing a valid API key s'affiche.

Cause possible

Il se peut que le fichier JSON de clé de compte de service ne soit pas valide ou qu'il ne soit pas stocké à l'emplacement attendu.

Solutions possibles

Vérifiez que vous disposez d'un fichier JSON de clé de compte de service valide à l'emplacement stocké dans la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS et que cette dernière pointe vers l'emplacement approprié.


Une erreur système est survenue

Le message d'erreur [ERROR_RDBMS] system error occurred s'affiche.

Cause possible

  1. Il se peut que l'utilisateur ne dispose pas de toutes les autorisations Cloud Storage dont il a besoin.
  2. La table de base de données n'existe peut-être pas

Solutions possibles

  1. Vérifiez que vous disposez tout au moins des autorisations WRITER sur le bucket et READER sur le fichier d'exportation. Pour en savoir plus sur la configuration du contrôle d'accès dans Cloud Storage, consultez la page Créer et gérer des listes de contrôle d'accès.
  2. Assurez-vous que la table existe. Si tel est le cas, vérifiez alors que vous disposez des autorisations appropriées sur le bucket de stockage.

La définition de la table a changé

Le message d'erreur Table definition has changed, please retry transaction when dumping table s'affiche.

Cause possible

Pendant le processus d'exportation, la table a subi une modification.

Solutions possibles

La transaction de vidage peut échouer si vous utilisez les instructions ci-dessous lors de l'opération d'exportation :

  • ALTER TABLE
  • CREATE TABLE
  • DROP TABLE
  • RENAME TABLE
  • TRUNCATE TABLE
Supprimez l'une de ces instructions de l'opération de vidage.


La taille du fichier temporaire dépasse la valeur de "temp_file_limit"

Le message d'erreur Temporary file size exceeds temp_file_limit s'affiche.

Cause possible

La valeur de l'option temp_file_limit n'est pas suffisamment élevée pour votre utilisation de la base de données.

Solutions possibles

Augmentez la taille de temp_file_limit. Consultez la page Configurer des options de base de données.


Erreur inconnue

Le message d'erreur Unknown error s'affiche.

Cause possible

  1. Si ce message s'affiche lorsque vous tentez d'exporter la base de données vers un bucket Cloud Storage, il peut s'agir d'un échec de transfert lié à un problème de bande passante.
  2. Si ce message s'affiche pendant les sauvegardes manuelles ou automatiques, il est probable que le disque d'instance soit saturé.
  3. Si ce message s'affiche lorsque vous tentez de créer une instance dupliquée avec accès en lecture, il est probable qu'une erreur plus spécifique soit consignée dans les fichiers journaux.
  4. Si ce message s'affiche lorsque vous créez une instance, il est possible que vous tentiez de réutiliser le nom d'une instance récemment supprimée.

Solutions possibles

  1. L'instance Cloud SQL peut se trouver dans une région différente de celle du bucket Cloud Storage. La lecture et l'écriture de données d'un continent à l'autre impliquent une utilisation importante du réseau, pouvant entraîner ce type de problèmes intermittents.
  2. Si le fichier temporaire occupe trop d'espace, vous pouvez redémarrer l'instance afin de le supprimer et de libérer l'espace disque qu'il utilisait. Dans le cas contraire, vous devrez peut-être mettre à niveau votre instance vers un disque de taille plus importante.
  3. Inspectez les journaux dans Cloud Logging pour rechercher l'erreur en question. Si l'erreur est : set Service Networking service account as servicenetworking.serviceAgent role on consumer project, désactivez et réactivez Service Networking API. Cette action crée le compte de service nécessaire pour poursuivre le processus.
  4. Après que vous avez supprimé une instance, vous devez attendre une semaine avant de pouvoir réutiliser son nom.