Mensajes de error de Cloud SQL para MySQL

Esta página analiza algunos de los mensajes de error encontrados en Cloud SQL.

Descripción general

Los mensajes de error en Cloud SQL provienen de diversas fuentes y aparecen en diversos lugares. Algunos mensajes de error provienen de los propios motores de base de datos, otros del servicio Cloud SQL, otros de las aplicaciones cliente y otros se devuelven mediante llamadas a la API de administración de Cloud SQL.

Esta página incluye algunos de los errores más comunes en Cloud SQL. Si no encuentra el código de error o el mensaje que busca, puede consultar el material de referencia aquí:

Si no encuentra el material de referencia para el mensaje de error que está viendo, también puede buscar en algunos de estos lugares donde otros usuarios pueden tener experiencia relevante:

Errores operativos

A | B | C | D | E | F | G | I | L | M | N | O | P | Q | R | S | T | U | O

Mensaje de error Solución de problemas
Conexión abortada xxx a la base de datos: DB_NAME. La aplicación no finaliza las conexiones correctamente.

Verifique las siguientes condiciones:

  • La aplicación no llamó a mysql_close() antes de salir.
  • Errores de comunicación .
  • Es posible que la aplicación haya estado inactiva durante más de los segundos especificados en `wait_timeout` o `interactive_timeout` sin enviar ninguna solicitud al servidor. Consulte la Sección 5.1.7, Variables del sistema del servidor .
  • La aplicación finalizó abruptamente en medio de una transferencia de datos.
  • El valor de la variable max_allowed_packet podría ser demasiado pequeño o las consultas requieren más memoria que la asignada a mysqld. Esto se puede solucionar elevando el indicador max_allowed_packet a un valor mucho mayor.
Acceso denegado; necesita (al menos uno de) los privilegios SUPER para esta operación. Podría haber una vista, una función o un procedimiento en la base de datos de origen que haga referencia DEFINER de una manera que no es compatible con Cloud SQL.

Actualice el definidor en las bases de datos externas, por ejemplo, de root@localhost a root@% o a un usuario que no sea superusuario. Consulte Control de acceso a objetos almacenados para obtener más información.

Acceso denegado para el usuario 'XXX'@'XXX' (usando contraseña: XXX) Podrían haber varias causas, entre ellas:
  • El nombre de usuario (o contraseña) es incorrecto.
  • El usuario se está conectando desde una URL distinta a @XXX .
  • El usuario no tiene los privilegios correctos para la base de datos a la que intenta conectarse.

Prueba estas cosas...

  • Verificar el nombre de usuario y la contraseña correspondiente.
  • Verifique el origen de la conexión para ver si coincide con la URL donde el usuario tiene privilegios de acceso.
  • Verifique los privilegios de concesión del usuario en la base de datos.
No se encontró el rango de IP asignado en la red. Los emparejamientos de VPC no se actualizaron después de que se modificó o eliminó un rango asignado.

Necesita modificar la conexión privada . Use el siguiente comando y asegúrese de usar el argumento --force :

gcloud services vpc-peerings update \
--network=VPC_NETWORK \
--ranges=ALLOCATED_RANGES \
--service=servicenetworking.googleapis.com \
--force
CUALQUIER comando denegado al usuario 'root'@'%' para la tabla ... El usuario no tiene todos los permisos que necesita para esta operación.

Prueba esto:

  1. Conéctese a la base de datos (por ejemplo, usando Cloud Shell) e inicie sesión como root.
  2. Ejecute USE mysql; .
  3. Otorgue los siguientes permisos utilizando la sintaxis:
    GRANT PERMISSION_1,PERMISSION_2 ON *.* TO 'root' WITH GRANT OPTION;
       
    • SELECCIONAR
    • INSERTAR
    • ACTUALIZAR
    • BORRAR
    • CREAR
    • GOTA
    • RECARGAR
    • CERRAR
    • PROCESO
    • REFERENCIAS
    • ÍNDICE
    • ALTERAR
    • MOSTRAR BASES DE DATOS
    • CREAR TABLAS TEMPORALES
    • MESAS DE BLOQUEO
    • EJECUTAR
    • ESCLAVO DE REPLICACIÓN
    • CLIENTE DE REPLICACIÓN
    • CREAR VISTA
    • MOSTRAR VISTA
    • CREAR RUTINA
    • ALTERAR LA RUTINA
    • CREAR USUARIO
    • EVENTO
    • DESENCADENAR
    • CREAR ESPACIO DE TABLA
  4. Ejecute USE 'Database_Name'; donde Database_Name es la base de datos donde está creando las vistas.
  5. Ejecutar todas las vistas creadas en la sesión y confirmar.
Mensaje de error Solución de problemas
Solicitud incorrecta. Este mensaje puede tener varias causas. Illegal Argument es una de las más comunes. En este caso, la solicitud utiliza un argumento incorrecto o un valor no válido. Para muchas otras causas, el mensaje de error puede contener una pista útil.

En caso de Illegal Argument , revise la solicitud para asegurarse de que cada argumento sea admisible y que cada valor sea válido. Para cualquier otra causa, revise los archivos de registro para ver si hay más información.

Mensaje de error Solución de problemas
No se pueden modificar los rangos asignados en CreateConnection. Utilice UpdateConnection. Los emparejamientos de VPC no se actualizaron después de que se modificó o eliminó un rango asignado.

Necesita modificar la conexión privada . Use el siguiente comando y asegúrese de usar el argumento --force :

gcloud services vpc-peerings update \
--network=VPC_NETWORK \
--ranges=ALLOCATED_RANGES \
--service=servicenetworking.googleapis.com \
--force
Restricciones/sql.restrictAuthorizedNetworks. La operación de clonación está bloqueada por la configuración Authorized Networks . Authorized Networks se configuran para direcciones IP públicas en la sección Conectividad del... Google Cloud consola y la clonación no está permitida debido a consideraciones de seguridad .

Si es posible, elimine todas las entradas Authorized Networks de la instancia de Cloud SQL. De lo contrario, cree una réplica sin ninguna entrada Authorized Networks .

Mensaje de error Solución de problemas
El disco está lleno. El tamaño del disco de la instancia principal puede llenarse durante la creación de la réplica.

Edite la instancia principal para actualizarla a un tamaño de disco más grande.

Mensaje de error Solución de problemas
Error al crear la subred. No hay más direcciones disponibles en el rango de IP.

No se encontraron bloques libres en los rangos de IP asignados. Por favor, asigne nuevos rangos a este proveedor de servicios.

No hay más direcciones disponibles en el rango de IP asignado.

Considere estos posibles escenarios:

  • El tamaño del rango de IP asignado para la conexión de servicio privado es menor que /24.
  • El tamaño del rango de IP asignado para la conexión del servicio privado es demasiado pequeño para la cantidad de instancias de Cloud SQL.
  • El requisito de tamaño del rango de IP asignado será mayor si las instancias se crean en varias regiones. Consulte el tamaño del rango asignado.

Para cada uno de los escenarios anteriores, puede optar por ampliar el rango de IP existente o asignar un rango de IP adicional a la conexión de servicio privado.

Si está asignando un nuevo rango, tenga cuidado de no crear una asignación que se superponga con ninguna asignación existente.

Después de crear un nuevo rango de IP, actualice el emparejamiento de VPC con el siguiente comando:

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com
--ranges=OLD_RESERVED_RANGE_NAME,NEW_RESERVED_RANGE_NAME \
--network=VPC_NETWORK
--project=PROJECT_ID \
--force

Si amplía una asignación existente, asegúrese de aumentar únicamente el rango de asignación, no de reducirlo. Por ejemplo, si la asignación original era 10.0.10.0/24, la nueva asignación debe ser al menos 10.0.10.0/23.

En general, si se parte de una asignación /24, una buena regla general es decrementar la máscara / en 1 por cada condición (grupo de tipos de instancia adicional, región adicional). Por ejemplo, si se intenta crear ambos grupos de tipos de instancia en la misma asignación, basta con pasar de /24 a /23.

Después de expandir un rango de IP existente, actualice el emparejamiento de VPC con el siguiente comando:

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com
--ranges=RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID \
--force
Mensaje de error Solución de problemas
(gcloud.sql.connect) Parece que su cliente no tiene conectividad IPv6 y la instancia de base de datos no tiene una dirección IPv4. Estás intentando conectarte a tu instancia de IP privada mediante Cloud Shell.

Actualmente no se admite la conexión desde Cloud Shell a una instancia con solo una dirección IP privada.

Obtuve un paquete más grande que max_allowed_packet bytes al volcar la tabla. El paquete era más grande de lo permitido por la configuración.

Utilice mysqldump con la opción max_allowed_packet .

Para obtener más información sobre el uso de indicadores mysqldump para la migración de importaciones administradas, consulte Indicadores de sincronización inicial permitidos y predeterminados

Mensaje de error Solución de problemas
InnoDB: La escritura en el archivo ./ibtmp1 falló en el desplazamiento XXXX, se deberían haber escrito YYYY bytes, solo se escribieron 0. La instancia alcanzó un límite estricto al realizar una copia de seguridad automática.

Comprueba que tu sistema operativo y sistema de archivos admitan archivos de este tamaño. Comprueba que el disco no esté lleno ni supere su cuota . Puedes solicitar un aumento de tus cuotas desde el Google Cloud consola o edite la instancia para actualizarla a un tamaño de disco más grande.

Error interno. Es posible que al proyecto le falte la cuenta de servicio de red de servicios requerida para esta función.

Para reparar los permisos del servicio, deshabilite la Service Networking API , espere cinco minutos y luego vuelva a habilitarla.

Solicitud no válida: configuración de red de servicio incorrecta, por ejemplo. Service Networking API no está habilitada en el proyecto.

Habilite la Service Networking API en su proyecto. Si ve este error al intentar asignar una dirección IP privada a una instancia de Cloud SQL y usa una VPC compartida, también debe habilitar la Service Networking API para el proyecto host.

Mensaje de error Solución de problemas
Tabla de metadatos bloqueada. Otra consulta, proceso o transacción está bloqueando su consulta y bloqueando la tabla.

Encuentre el proceso que bloqueó la tabla y deténgalo:

  1. Diagnosticar con: sql> show processlist;

    El primer elemento de la lista podría ser el que contiene el candado, al que esperan los siguientes elementos.

  2. El comando SHOW INNODB STATUS también puede ser útil.
  3. Ejecute el comando KILL <var>PID</var> .
Mensaje de error Solución de problemas
Error en la asociación de red. La Service Networking API no está habilitada en el proyecto.

Habilite la Service Networking API en su proyecto. Si ve este error al intentar asignar una dirección IP privada a una instancia de Cloud SQL y usa una VPC compartida, también debe habilitar la Service Networking API para el proyecto host.

Mensaje de error Solución de problemas
La operación falló porque otra operación ya estaba en curso. La mayoría de las operaciones en Cloud SQL son síncronas. Solo se puede ejecutar una a la vez.

Espere a que finalice la operación anterior antes de comenzar otra.

La operación no es válida para esta instancia. Este error se devuelve desde una llamada API a instances.restoreBackup y significa que no se puede restaurar desde una copia de seguridad a una instancia con un tamaño de almacenamiento (XX GB) menor que el tamaño de la copia de seguridad (YY GB).

Edite la instancia de destino para aumentar su tamaño de almacenamiento.

Mensaje de error Solución de problemas
Cuota excedida. Has alcanzado el límite de tu cuota por minuto o diaria. Revisa las cuotas y los límites de Cloud SQL.

Solicita un aumento a tus cuotas a la Google Cloud consola .

Mensaje de error Solución de problemas
Las ranuras de conexión restantes están reservadas. Se han alcanzado las conexiones máximas permitidas.

Aumente el valor del indicador max_connections . Consulte Configuración de indicadores de base de datos .

A la solicitud le falta una clave API válida. Es posible que no tenga un archivo JSON de clave de cuenta de servicio válido o que no esté almacenado en la ubicación esperada.

Verifique que tenga un archivo JSON de clave de cuenta de servicio válido en la ubicación almacenada en la variable de entorno GOOGLE_APPLICATION_CREDENTIALS y que la variable apunte a la ubicación correcta.

Mensaje de error Solución de problemas
La clave especificada era demasiado larga; la longitud máxima de la clave es 767 bytes. La instancia principal externa podría tener la variable innodb_large_prefix establecida.

Establezca el indicador innodb_large_prefix en ON al crear la réplica o actualice la réplica existente con el indicador.

Error de SSL: relleno no válido. Error de certificado del servidor.

Cree un nuevo certificado de servidor y gírelo .

Se produjo un error del sistema.
  • Es posible que el usuario no tenga todos los permisos de almacenamiento en la nube que necesita.
  • Es posible que la tabla de base de datos no exista.

Prueba estas cosas...

  • Comprueba que tienes al menos permisos WRITER en el bucket y de READER en el archivo de exportación. Para obtener más información sobre cómo configurar el control de acceso en Cloud Storage, consulta Crear y administrar listas de control de acceso.
  • Asegúrese de que la tabla exista. Si existe, confirme que tiene los permisos correctos en el contenedor de almacenamiento.

Mensaje de error Solución de problemas
Se modificó la definición de la tabla. Durante el proceso de exportación se produjo un cambio en la tabla.

La transacción de volcado puede fallar si utiliza las siguientes declaraciones durante la operación de exportación:

  • ALTER TABLE
  • CREATE TABLE
  • DROP TABLE
  • RENAME TABLE
  • TRUNCATE TABLE

Elimine cualquiera de estas declaraciones de la operación de volcado.

La tabla db.table no existe Si una o más tablas InnoDB desaparecieron después de reiniciar MySQL y el registro de errores de MySQL tiene las siguientes advertencias al mismo tiempo, se debe a que las columnas de clave externa y clave referenciada no están sincronizadas.
[Warning] InnoDB: Load table db.table failed, the table has missing
foreign key indexes. Turn off 'foreign_key_checks' and try again.
[Warning] InnoDB: Cannot open table db/table from the internal data
dictionary of InnoDB though the .frm file for the table exists.
See InnoDB troubleshooting
for more information.
      

Tras reiniciar la base de datos, MySQL debe cargar las tablas en la caché del diccionario InnoDB en el primer acceso. Si detecta una discrepancia, bloquea el acceso a esa tabla.

mysql> select * from db.table;
ERROR 1146 (42S02): Table db.table doesn't exist
      

Desactivar foreign_key_checks para la sesión MySQL permite acceder de nuevo a la tabla. Una vez accedida y cargada en la caché del diccionario, InnoDB no comprueba ni se queja de una discrepancia de clave foránea hasta el siguiente reinicio de la base de datos.

La falta de coincidencia de clave externa debe solucionarse para evitar problemas adicionales.

  1. Deshabilite foreign_key_checks para la sesión del cliente mysql y acceda a la tabla.
    mysql> SET SESSION FOREIGN_KEY_CHECKS=0;
                
  2. Inspeccione las tablas principal y secundaria e identifique las discrepancias entre la clave externa y las columnas de clave referenciadas.
    mysql> SHOW CREATE TABLE parent_table;
    mysql> SHOW CREATE TABLE child_table;
                

    Verifique que las columnas correspondientes tengan tipos de datos similares. El tamaño y el signo de los tipos de precisión fija, como INTEGER y DECIMAL son iguales. Para las columnas de cadena no binaria (de caracteres), el conjunto de caracteres y la intercalación deben ser los mismos.

  3. Corrija la discrepancia mediante la instrucción ALTER TABLE . Algunas operaciones pueden requerir que primero elimine la restricción de clave externa, aplique el cambio y luego vuelva a agregar la clave externa.
  4. Vuelva a habilitar foreign_key_checks nuevamente.
    mysql> SET SESSION FOREIGN_KEY_CHECKS=1;
                
(Tiempo de espera) durante la exportación. Los formatos CSV y SQL se exportan de forma diferente. El formato SQL incluye toda la base de datos y probablemente tarde más en completarse.

Utilice el formato CSV y ejecute varios trabajos de exportación más pequeños para reducir el tamaño y la duración de cada operación.

Demasiadas conexiones. Configurar el indicador max_connections con un valor demasiado alto puede causar este error. Esto también puede deberse a la activación de un indicador fuera de secuencia.

Reduzca el valor del indicador max_connections o contacte con el servicio de atención al cliente para solicitar la eliminación del indicador y, a continuación, un hard drain . Esto obliga a la instancia a reiniciarse en un host diferente con una configuración nueva, sin el indicador ni la configuración.

Mensaje de error Solución de problemas
No autorizado para conectarse. Las causas pueden ser múltiples porque la autorización se produce en muchos niveles:
  • A nivel de base de datos, el usuario de la base de datos debe existir y su contraseña debe coincidir.
  • En el nivel del proyecto, es posible que el usuario no tenga los permisos de IAM correctos, incluidos los permisos serviceusage.services.use o cloudsql.instances.connect .
  • A nivel de red, si la instancia de Cloud SQL usa IP pública, la IP de origen de la conexión debe estar en una red autorizada.

Prueba estas cosas...

  • Asegúrese de que el usuario exista y su contraseña coincida.
  • Asignar el rol Service Usage Consumer a la cuenta de usuario. Este rol incluye el permiso serviceusage.services.use .
  • Si utiliza una IP pública, asegúrese de que la IP de origen esté en una red autorizada.
Tabla desconocida COLUMN_STATISTICS en information_schema. Esto sucede si utiliza el binario mysqldump de MySQL 8.0 para volcar datos de una base de datos MySQL 5.7 e importarlos a una base de datos MySQL 8.0.

Si vuelca datos de una base de datos MySQL 5.7 y los importa a una base de datos MySQL 8.0, asegúrese de usar el binario mysqldump de MySQL 5.7. Si usa el binario mysqldump de MySQL 8.0, debe agregar el indicador --column-statistics=0 .

Mensaje de error Solución de problemas
x509: el certificado no es válido para ningún nombre. Problema conocido: el marcador proxy de Cloud SQL no es compatible con Go 1.15 en este momento.

Hasta que se solucione, consulte esta discusión en GitHub , que incluye una solución alternativa.

Errores desconocidos

La siguiente tabla muestra algunos casos conocidos donde puede ocurrir un Unknown Error y enumera soluciones específicas cuando corresponda. Sin embargo, esta no es una lista completa. Si no encuentra su caso en la tabla, consulte el rastreador de problemas público de Cloud SQL . Si no encuentra el problema, considere enviar un informe o revisar otras opciones de soporte .

Operación El problema podría ser... Cosas para probar...
Agregar usuario Si el usuario ya existe en la base de datos, este error puede ocurrir cuando intenta agregarlo. Verifique que el usuario no exista ya en la base de datos.
Respaldo Si ve esto durante las copias de seguridad automáticas o manuales, es probable que el disco de la instancia esté lleno. Si el tamaño del archivo temporal ocupa demasiado espacio, puede reiniciar la instancia para eliminarlo y liberar espacio en disco. De lo contrario, podría necesitar ampliar el tamaño de disco de su instancia.
Clon Esto puede ocurrir cuando hay escasez de recursos en la zona seleccionada. Pruebe en otra zona de la región o espere y vuelva a intentarlo más tarde.
Crear instancia
  • Esto puede ocurrir cuando intentas volver a utilizar el mismo nombre que una instancia eliminada recientemente.
  • También puede deberse a problemas de conectividad intermitentes.
  • Los registros podrían mostrar que la API de red de servicios no está habilitada para el proyecto.
  • El error también se ha observado al intentar crear varias instancias en paralelo. Por ejemplo, los scripts de Terraform permiten este intento.
  • Otra causa puede ser que se haya agotado un recurso específico o se haya superado el límite de cuota. Busque en los registros una entrada como Quota 'INTERNAL_FORWARDING_RULES_WITH_TARGET_INSTANCE_PER_NETWORK' exceeded. Limit: 100.0 globally
  • Este error puede ocurrir si la creación de una subred falla cuando no hay más direcciones disponibles en el rango de IP.
  • Los nombres de instancia no se pueden reutilizar hasta aproximadamente una semana después de su eliminación.
  • En caso de problemas de conectividad intermitentes, la única solución es volver a intentarlo.
  • Habilite la API de redes de servicios para el proyecto.
  • Los scripts de creación de instancias en paralelo solo crearán una instancia. Modifique el script para que espere a que se complete cada operación de creación de instancia antes de continuar con la siguiente.
  • Asignar nuevos rangos .
Crear réplica Es probable que haya un error más específico en los archivos de registro. Inspeccione los registros en Cloud Logging para encontrar el error real.

Si el error indica que set Service Networking service account as servicenetworking.serviceAgent role on consumer project , deshabilite y vuelva a habilitar la Service Networking API . Esta acción crea la cuenta de servicio necesaria para continuar con el proceso.

Si el error es The instance creation failed due to a permission error with the CMEK key defined , revise la configuración y la ubicación de la clave .

Exportar Si ve esto al intentar exportar una base de datos a un depósito de Cloud Storage, es posible que la transferencia falle debido a un problema de ancho de banda. La instancia de Cloud SQL puede estar ubicada en una región distinta a la del bucket de Cloud Storage. Leer y escribir datos de un continente a otro implica un alto consumo de red y puede causar problemas intermitentes como este.
Conmutación por error (heredada) Si está utilizando la configuración de conmutación por error heredada, esto puede suceder cuando la máquina de réplica de conmutación por error no es lo suficientemente grande para manejar la conmutación por error. La mejor solución es migrar a la configuración actual de alta disponibilidad . De lo contrario, deberá actualizar la réplica de conmutación por error a una máquina más grande.
Conmutación por error (automática) Una operación de conmutación por error automática puede producir este mensaje de error cuando el servicio detecta que la instancia principal aún responde. En este caso, no hay nada que hacer. La conmutación por error no se producirá porque no es necesaria.
Importar El archivo de importación puede contener declaraciones que requieren el rol de superusuario. Edite el archivo para eliminar cualquier declaración que requiera el rol de superusuario.

Cloud SQL también utiliza binarios de terceros (por ejemplo, mysqld ), lo que puede generar mensajes de error desconocidos. Estos errores son internos a los binarios de terceros y quedan fuera del alcance de Cloud SQL. Sin embargo, a veces se puede encontrar un error más específico en los archivos de registro de Cloud SQL aproximadamente al mismo tiempo.

También, a veces se trata de un código de error desconocido. En este caso, el mensaje completo puede ser Unknown Error Code .