Mensajes de error de Cloud SQL para MySQL

En esta página, se analizan algunos de los mensajes de error que se encuentran en Cloud SQL.

Descripción general

Los mensajes de error en Cloud SQL provienen de muchas fuentes y aparecen en muchos lugares. Algunos mensajes de error provienen de los motores de base de datos, otros del servicio de Cloud SQL, algunos de las aplicaciones cliente y otros se muestran mediante llamadas a la API de Administrador de Cloud SQL.

En esta página, se incluyen algunos de los errores más comunes en Cloud SQL. Si no encuentras el código de error o el mensaje que buscas aquí, puedes buscar material de referencia en las siguientes páginas:

Si no encuentras el material de referencia para el mensaje de error que ves, también puedes buscar en algunos de estos sitios en los que otros usuarios pueden contar una experiencia similar:

Errores operativos

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

Mensaje de error Soluciona problemas
Aborted connection xxx to db: DB_NAME. La aplicación no finaliza las conexiones correctamente.

Verifica estas condiciones:

  • La aplicación no llamó a mysql_close() antes de cerrarse.
  • Errores de comunicación
  • Es posible que la aplicación haya estado suspendida más tiempo que la cantidad de segundos especificados en “wait_timeout” o “interactive_timeout” sin emitir ninguna solicitud al servidor. Consulta la sección 5.1.7, Server System Variables (Variables del sistema del servidor)
  • La aplicación se finalizó de manera abrupta en medio de una transferencia de datos
  • El valor de la variable max_allowed_packet puede ser demasiado pequeño o las consultas requieren más memoria que la asignada para mysqld. Para resolverlo, aumenta la marca max_allowed_packet a un número mucho mayor.
Se denegó el acceso porque necesitas privilegios SUPER para esta operación (al menos uno) Puede haber una vista, una función o un procedimiento en la base de datos fuente que haga referencia a DEFINER de una manera que no sea compatible con Cloud SQL.

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

Se denegó el acceso al usuario “XXX”@'XXX' (con la contraseña: XXX) Puede haber varias causas, entre ellas:
  • El nombre de usuario o la contraseña son incorrectos.
  • El usuario se conecta desde una URL que no es @XXX.
  • El usuario no tiene los privilegios correctos para la base de datos a la que intenta conectarse.

Prueba lo siguiente...

  • Verifica el nombre de usuario y la contraseña correspondiente.
  • Verifica el origen de la conexión para ver si coincide con la URL en la que el usuario tiene privilegios de acceso.
  • Verifica los privilegios de otorgamiento del usuario en la base de datos.
No se encontró el rango de IP asignado en la red. Los intercambios de tráfico de VPC no se actualizaron después de modificar o quitar un rango asignado.

Debes modificar la conexión privada. Usa el siguiente comando y asegúrate de usar el argumento --force:

gcloud services vpc-peerings update \
--network=VPC_NETWORK \
--ranges=ALLOCATED_RANGES \
--service=servicenetworking.googleapis.com \
--force
Cualquier comando denegado del usuario “raíz”@'%” para la tabla ... El usuario no tiene todos los permisos que necesita para realizar esta operación.

Pruebe lo siguiente:

  1. Conéctate a la base de datos (por ejemplo, con Cloud Shell) y accede con permisos de administrador.
  2. Ejecutar USE mysql;.
  3. Otorga los siguientes permisos con la sintaxis:
    GRANT PERMISSION_1,PERMISSION_2 ON *.* TO 'root' WITH GRANT OPTION;
       
    • SELECCIONAR
    • INSERT
    • ACTUALIZAR
    • BORRAR
    • CREAR
    • DROP
    • VOLVER A CARGAR
    • APAGADO
    • PROCESAR
    • REFERENCIAS
    • ÍNDICE
    • MODIFICAR
    • MOSTRAR BASES DE DATOS
    • CREAR TABLAS TEMPORALES
    • BLOQUEAR TABLAS
    • EJECUTAR
    • REPLICATION SLAVE
    • REPLICATION CLIENT
    • CREAR VISTA
    • MOSTRAR VISTA
    • CREAR RUTINA
    • ALTERAR RUTINA
    • CREAR USUARIO
    • EVENTO
    • ACTIVADOR
    • CREAR ESPACIO DE TABLA
  4. Ejecuta USE 'Database_Name'; en el que Database_Name es la base de datos en la que creas las vistas.
  5. Ejecuta todas las vistas de creación de la sesión y confirma la operación.
Mensaje de error Soluciona problemas
Solicitud incorrecta. Este mensaje puede tener muchas causas. Illegal Argument es una de las más comunes. En este caso la solicitud usa el argumento incorrecto o un valor no válido para el argumento. En los otros casos, el mensaje de error podría incluir una sugerencia útil para identificar la causa del error.

En el caso de Illegal Argument, verifica la solicitud para asegurarte de que cada argumento esté permitido y que cada valor sea válido. Con todas las demás causas, verifica los archivos de registro para ver si hay más información disponible.

Mensaje de error Soluciona problemas
No se pueden modificar los rangos asignados en CreateConnection. Usa UpdateConnection Los intercambios de tráfico de VPC no se actualizaron después de modificar o quitar un rango asignado.

Debes modificar la conexión privada. Usa el siguiente comando y asegúrate de usar el argumento --force:

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

Si puedes, quita todas las entradas de Authorized Networks de la instancia de Cloud SQL. De lo contrario, crea una réplica sin ninguna entrada de Authorized Networks.

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

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

Mensaje de error Soluciona problemas
No se pudo crear la subred. No hay más direcciones disponibles en el rango de IP.

No se pudieron encontrar bloques libres en rangos de IP asignados. Asigna rangos nuevos para este proveedor de servicios.

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

Considera las siguientes situaciones posibles:

  • El tamaño del rango de IP asignado para la conexión privada a servicios es menor que /24.
  • El tamaño del rango de IP asignado para la conexión privada a servicios 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. Consulta Tamaño del rango asignado

Para cada una de las situaciones anteriores, puedes optar por expandir o asignar un rango de IP adicional a la conexión privada a servicios.

Si asignas un nuevo rango, ten cuidado de no crear una asignación que se superponga con cualquier asignación existente.

Después de crear un nuevo rango de IP, actualiza el intercambio de tráfico 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 expandes una asignación existente, asegúrate de aumentar solo el rango de asignación y no disminuirlo. Por ejemplo, si la asignación original era 10.0.10.0/24, realiza la nueva asignación de 10.0.10.0/23 como mínimo.

En general, si empiezas desde una asignación /24, disminuir la /mask en 1 para cada condición (grupo adicional de tipos de instancias, región adicional) es una buena regla general. Por ejemplo, si intentas crear ambos grupos de tipos de instancias en la misma asignación, pasar de /24 a /23 es suficiente.

Después de expandir un rango de IP existente, actualiza el intercambio de tráfico 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 Soluciona problemas
(gcloud.sql.connect) Parece que tu cliente no tiene conectividad IPv6 y la instancia de base de datos no tiene una dirección IPv4. Intentas conectarte a tu instancia de IP privada con Cloud Shell.

Por el momento, no se admite la conexión de Cloud Shell a una instancia que solo tenga una dirección IP privada.

Se obtuvo un paquete mayor que max_allowed_packet bytes durante el volcado de la tabla. El paquete fue más grande de lo que permitía la configuración.

Usa mysqldump con la opción max_allowed_packet.

Si deseas obtener más información sobre el uso de marcas de mysqldump para la migración de importaciones administradas, consulta Marcas de sincronización iniciales permitidas y predeterminadas.

Mensaje de error Soluciona problemas
InnoDB: Se produjo un error de escritura en el archivo ./ibtmp1 en el desplazamiento de XXXX, se debieron escribir los bytes YYYY, y solo se escribieron 0. La instancia alcanzó un límite estricto cuando se realizó una copia de seguridad automática.

Comprueba que el SO y el sistema de archivos admitan archivos de este tamaño. Verifica que el disco no esté lleno o que no se haya terminado la cuota de disco. Puedes solicitar un aumento de tus cuotas desde la consola de Google Cloud o editar 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 Service Networking requerida para esta función.

Para reparar los permisos del servicio, inhabilita Service Networking API, espera cinco minutos y vuelve a habilitarla.

Solicitud no válida: Configuración de Service Networking incorrecta para la instancia. Service Networking API no está habilitada en el proyecto.

Habilita la Service Networking API en tu proyecto. Si ves este error cuando intentas asignar una dirección IP privada a una instancia de Cloud SQL y usas una VPC compartida, también debes habilitar la Service Networking API para el host.

Mensaje de error Soluciona problemas
Tabla de metadatos bloqueada. Otra consulta, proceso o transacción bloquea la consulta y la tabla.

Busca el proceso que bloqueó la tabla y finalízalo.

  1. Diagnostica con: sql> show processlist;

    El primer elemento de la lista puede ser el que está provocando el bloqueo, lo que mantiene en espera a los elementos posteriores.

  2. El comando SHOW INNODB STATUS también puede ser útil.
  3. Ejecuta el comando KILL <var>PID</var>;
Mensaje de error Soluciona problemas
No se pudo asociar la red. La Service Networking API no está habilitada en el proyecto.

Habilita la Service Networking API en tu proyecto. Si ves este error cuando intentas asignar una dirección IP privada a una instancia de Cloud SQL y usas una VPC compartida, también debes habilitar la Service Networking API para el host.

Mensaje de error Soluciona problemas
Ocurrió un error en la operación porque otra operación ya estaba en progreso. La mayoría de las operaciones de Cloud SQL son síncronas. Solo puedes ejecutar una a la vez.

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

La operación no es válida para esta instancia. Este error se muestra en una llamada a la API a instances.restoreBackup y significa que no puedes restablecer 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).

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

Mensaje de error Soluciona problemas
Se superó la cuota. Alcanzaste el límite de tu cuota diaria o por minuto. Revisa las cuotas y límites de Cloud SQL.

Solicita un aumento de tus cuotas en la consola de Google Cloud.

Mensaje de error Soluciona problemas
Las ranuras de conexión restantes están reservadas. Se alcanzó la cantidad máxima de conexiones permitidas.

Aumenta el valor de la marca max_connections. Consulta Configura marcas de base de datos.

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

Verifica que tengas 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 Soluciona problemas
La clave especificada era demasiado larga; la longitud máxima es de 767 bytes La instancia principal externa puede tener la variable innodb_large_prefix configurada.

Establece la marca innodb_large_prefix en ON cuando crees la réplica o actualiza la réplica existente con la marca.

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

Crea un certificado de servidor nuevo y realiza una rotación.

Ocurrió un error en el sistema
  • Es posible que el usuario no tenga todos los permisos de Cloud Storage que necesita.
  • Es posible que la tabla de la base de datos no exista.

Prueba lo siguiente...

  • Verifica que tengas al menos los permisos WRITER en el bucket y los permisos READER en el archivo de exportación. Para obtener más información sobre la configuración del control de acceso en Cloud Storage, consulta Crea y administra Listas de control de acceso.
  • Asegúrate de que la tabla exista. Si la tabla existe, confirma que tienes los permisos correctos en el bucket de almacenamiento.
Mensaje de error Soluciona problemas
Se cambió 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 usas las siguientes declaraciones durante la operación de exportación:

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

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

El tamaño del archivo temporal excede el temp_file_limit La marca temp_file_limit es demasiado baja para el uso de la base de datos.

Aumenta el tamaño de temp_file_limit. Consulta Configura marcas de base de datos.

La tabla db.table no existe Si una o más tablas de InnoDB desapareció después del reinicio de MySQL y el registro de errores de MySQL tiene las siguientes advertencias al mismo tiempo, se debe a que la clave externa y las columnas de clave a las que se hace referencia están fuera de sincronización.
[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.
      

Después de reiniciar la base de datos, MySQL debe cargar las tablas en la caché del diccionario de InnoDB durante el primer acceso. Si detecta la 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 de MySQL permite el acceso a la tabla de nuevo. Una vez que se accede a la tabla y se carga en la caché del diccionario, InnoDB no verifica ni se reclama por una discrepancia de clave externa hasta que se reinicie la siguiente base de datos.

Se debe corregir la incompatibilidad de las claves externas para evitar más problemas.

  1. Inhabilita foreign_key_checks para la sesión del cliente mysql y accede a la tabla.
    mysql> SET SESSION FOREIGN_KEY_CHECKS=0;
                
  2. Inspecciona las tablas superior y secundaria e identifica las discrepancias entre la columna externa y las columnas de clave a las que se hace referencia.
    mysql> SHOW CREATE TABLE parent_table;
    mysql> SHOW CREATE TABLE child_table;
                

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

  3. Soluciona la falta de coincidencia mediante la declaración ALTER TABLE. Algunas operaciones pueden requerir que descartes primero la restricción de clave externa, apliques el cambio y, luego, vuelvas a agregar la clave externa.
  4. Vuelve a habilitar foreign_key_checks.
    mysql> SET SESSION FOREIGN_KEY_CHECKS=1;
                
(Tiempo de espera) durante la exportación. Los formatos CSV y SQL se exportan de manera diferente. El formato SQL incluye la base de datos completa y es probable que tarde más en completarse.

Usa el formato CSV y ejecuta varios trabajos de exportación más pequeños a fin de reducir el tamaño y la duración de cada operación.

Hay demasiadas conexiones. Si se establece un valor demasiado alto para la marca max_connections, es posible que se genere este error. Esto también puede deberse a que habilitas una marca fuera de secuencia.

Reduce el valor de la marca max_connections o comunícate con el servicio de asistencia al cliente para solicitar la eliminación de una marca seguida de una hard drain. Esto obliga a la instancia a reiniciarse en un host diferente con una configuración nueva, sin la marca ni la configuración.

Mensaje de error Soluciona problemas
No estás autorizado para establecer la conexión Puede haber muchas causas, ya que la autorización ocurre en muchos niveles:
  • A nivel de la base de datos, el usuario de la base de datos debe existir y su contraseña debe coincidir.
  • A 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 la red, si la instancia de Cloud SQL usa una IP pública, la IP de origen de la conexión debe estar en una red autorizada.

Prueba lo siguiente...

  • Asegúrate de que el usuario exista y su contraseña coincida.
  • Asigna la función Service Usage Consumer a la cuenta de usuario. Esta función incluye el permiso serviceusage.services.use.
  • Si usas una IP pública, asegúrate de que la IP de origen esté en una red autorizada.
Tabla COLUMN_STATISTICS desconocida en information_schema. Esto sucede si usas el objeto binario mysqldump de MySQL 8.0 para volcar datos de una base de datos de MySQL 5.7 y, luego, importarlos a una base de datos de MySQL 8.0.

Si vuelcas los datos de una base de datos de MySQL 5.7 y, luego, los importas a una base de datos de MySQL 8.0, asegúrate de usar el objeto binario mysqldump de MySQL 5.7. Si usas el objeto binario mysqldump de MySQL 8.0, debes agregar la marca --column-statistics=0.

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

Hasta que este problema se corrija, consulta este debate en GitHub, en el que se incluye una solución alternativa.

Errores desconocidos

En la siguiente tabla, se muestran algunos casos conocidos en los que puede ocurrir un Unknown Error y se muestran las soluciones específicas cuando corresponda. Sin embargo, esta no es la lista completa. Si no encuentras tu caso en la tabla, consulta la herramienta de seguimiento de errores pública para Cloud SQL. Si no encuentras el problema allí, envía un informe o revisa otras opciones de asistencia.

Operación Posible problema Posibles soluciones
Agregar usuario Si el usuario ya existe en la base de datos, este error puede ocurrir cuando intentas agregarlos. Verifica para asegurarte de que el usuario aún no exista en la base de datos.
Copia de seguridad Si ves esto mientras se realizan 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, puedes reiniciar la instancia para quitar ese archivo y liberar espacio en el disco. De lo contrario, es posible que debas actualizar la instancia a un tamaño de disco más grande.
Clonación Esto puede ocurrir cuando hay escasez de recursos en la zona seleccionada. Prueba con otra zona de la región, o espera y vuelve a intentarlo más tarde.
Creación de una instancia
  • Esto puede ocurrir cuando intentas usar el mismo nombre de una instancia recién borrada.
  • También puede deberse a problemas de conectividad intermitente.
  • Los registros pueden mostrar que la API de Herramientas de redes de servicios no está habilitada para el proyecto.
  • También se detectó el error cuando intentas crear varias instancias en paralelo. Por ejemplo, las secuencias de comandos de Terraform permiten esto.
  • Otra causa puede ser que se haya agotado un recurso específico o que se haya excedido un límite de cuota. Busca 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 la subred falla cuando no hay más direcciones disponibles en el rango de IP.
  • Los nombres de las instancias no pueden volver a usarse hasta una semana después de su eliminación.
  • En el caso de los problemas de conectividad intermitente, la única solución es volver a intentarlo.
  • Habilita la API de Herramientas de redes de servicios para el proyecto.
  • Las secuencias de comandos de creación de instancias paralelas solo tendrán éxito en la creación de una de las instancias. Modifica la secuencia de comandos para esperar hasta que cada operación de creación de instancia se complete antes de continuar con la siguiente.
  • Asigna rangos nuevos.
Crear réplica Es probable que haya un error más específico en los archivos de registro. Inspecciona los registros en Cloud Logging para encontrar el error real.

Si el error es set Service Networking service account as servicenetworking.serviceAgent role on consumer project, inhabilita y vuelve a habilitar la Service Networking API. Esta acción crea la cuenta de servicio que se necesita para continuar con el proceso.

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

Exportar Si ves esto mientras intentas exportar una base de datos a un bucket de Cloud Storage, es posible que la transferencia falle debido a un problema de ancho de banda. Es posible que la instancia de Cloud SQL esté ubicada en una región diferente a la del bucket de Cloud Storage. Leer y escribir datos de un continente a otro implica mucho uso de la red y puede causar problemas intermitentes como este.
Conmutación por error (heredada) Si usas la configuración heredada de la conmutación por error, esto puede ocurrir cuando la máquina de réplica de conmutación por error no es lo suficientemente grande para tolerar la conmutación. La mejor solución es migrar a la configuración actual de alta disponibilidad. De lo contrario, debes 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 automática de conmutación por error puede producir este mensaje de error cuando el servicio detecta que la instancia principal aún responde. No hay nada que se pueda hacer en este caso. La conmutación por error no se producirá porque no es necesaria.
Importación El archivo de importación puede contener declaraciones que requieren la función de superusuario. Edita el archivo para quitar cualquier declaración que requiera la función de superusuario.

Cloud SQL también usa algunos objetos binarios de terceros (por ejemplo, mysqld), que pueden generar mensajes de error desconocido. Esos errores son internos de los objetos binarios de terceros y están 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 casi al mismo tiempo.

Además, a veces lo desconocido es un código de error. En este caso, el mensaje completo puede ser Unknown Error Code.