Mensajes de error de Cloud SQL

En esta página se describen algunos de los mensajes de error que se producen en Cloud SQL.

Información general

Los mensajes de error de Cloud SQL proceden de muchas fuentes y aparecen en muchos lugares. Algunos mensajes de error proceden de los propios motores de bases de datos, otros del servicio Cloud SQL, otros de las aplicaciones cliente y otros se devuelven mediante llamadas a la API Admin de Cloud SQL.

En esta página se incluyen algunos de los errores más habituales que se producen en Cloud SQL. Si no encuentras el código o el mensaje de error que buscas, puedes consultar material de referencia de la fuente aquí:

Si no encuentras el material de referencia del mensaje de error que ves, también puedes buscar en estos sitios, donde otros usuarios pueden haber tenido experiencias relevantes:

Errores operativos

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

Mensaje de error Solución de problemas
Se ha anulado la conexión xxx a la base de datos DB_NAME. La aplicación no está finalizando las conexiones correctamente.

Comprueba si se cumplen las siguientes condiciones:

  • La aplicación no ha llamado a mysql_close() antes de salir.
  • Errores de comunicación:
  • Es posible que la aplicación haya estado en suspensión durante más segundos de los especificados en `wait_timeout` o `interactive_timeout` sin enviar ninguna solicitud al servidor. Consulta la sección 5.1.7, Variables del sistema del servidor.
  • La aplicación se ha cerrado de forma abrupta durante una transferencia de datos.
  • El valor de la variable max_allowed_packet puede ser demasiado pequeño o las consultas requieren más memoria de la asignada a mysqld. Para solucionarlo, puedes aumentar el valor de la marca max_allowed_packet.
Acceso denegado. Necesitas (al menos uno de) los privilegios SUPER para esta operación. Puede haber una vista, una función o un procedimiento en la base de datos de origen que haga referencia a DEFINER de una forma que no sea compatible con Cloud SQL.

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

Acceso denegado al usuario "XXX"@"XXX" (con contraseña: XXX) Esto puede deberse a varios motivos, como los siguientes:
  • El nombre de usuario (o la contraseña) no es correcto.
  • 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 estas opciones ...

  • Verifica el nombre de usuario y la contraseña correspondiente.
  • Comprueba el origen de la conexión para ver si coincide con la URL donde el usuario tiene privilegios de acceso.
  • Comprueba los privilegios de concesión del usuario en la base de datos.
No se ha encontrado el intervalo de IP asignado en la red. Las interconexiones de VPC no se han actualizado después de modificar o eliminar un intervalo 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
Se ha denegado el comando ANY al usuario "root"@"%" para la tabla ... El usuario no tiene todos los permisos necesarios para esta operación.

Prueba esto:

  1. Conéctate a la base de datos (por ejemplo, mediante Cloud Shell) e inicia sesión como superusuario.
  2. Ejecutar USE mysql;.
  3. Concede los siguientes permisos con la sintaxis:
    GRANT PERMISSION_1,PERMISSION_2 ON *.* TO 'root' WITH GRANT OPTION;
       
    • SELECT
    • INSERTAR
    • ACTUALIZAR
    • ELIMINAR
    • CREAR
    • DROP
    • VOLVER A CARGAR
    • SHUTDOWN
    • PROCESO
    • REFERENCIAS
    • INDEX
    • ALTER
    • SHOW DATABASES
    • CREATE TEMPORARY TABLES
    • LOCK TABLES
    • EXECUTE
    • ESCLAVO DE REPLICACIÓN
    • CLIENTE DE REPLICACIÓN
    • CREATE VIEW
    • MOSTRAR VISTA
    • CREAR RUTINA
    • ALTER ROUTINE
    • CREATE USER
    • EVENTO
    • ACTIVADOR
    • CREATE TABLESPACE
  4. Ejecuta USE 'Database_Name';, donde Database_Name es la base de datos en la que vas a crear las vistas.
  5. Ejecuta todas las vistas de creación de la sesión y confirma.
Mensaje de error Solución de problemas
Solicitud incorrecta. Este mensaje puede deberse a varios motivos. Illegal Argument es una de las más habituales. En este caso, la solicitud usa un argumento incorrecto o un valor no válido para el argumento. En el caso de las demás causas, el mensaje de error puede contener una pista útil.

En el caso de Illegal Argument, compruebe la solicitud para asegurarse de que cada argumento es válido y de que cada valor del argumento es válido. Si no se debe a ninguna de las causas anteriores, consulta los archivos de registro para ver si hay más información.

Mensaje de error Solución de problemas
No se pueden modificar los intervalos asignados en CreateConnection. Usa UpdateConnection. Las interconexiones de VPC no se actualizaban después de modificar o eliminar un intervalo 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
Conexión reiniciada por el dispositivo similar.

Si intentas realizar una exportación y Cloud Storage no recibe ningún dato en un plazo determinado, la conexión se restablecerá.

Prueba a hacer una exportación manual con pg_dump.

Constraints/sql.restrictAuthorizedNetworks. La operación de clonación está bloqueada por la configuración de Authorized Networks. Authorized Networks están configuradas para direcciones IP públicas en la sección Conectividad de la Google Cloud consola y no se permite la clonación por motivos de seguridad.

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

No se ha podido asignar una página nueva a la base de datos database_name porque no hay suficiente espacio en el disco en el grupo de archivos PRIMARY. El grupo de archivos PRIMARY, que es el grupo de archivos principal y predeterminado de una base de datos, se ha quedado sin espacio.

Usa el comando sp_helpdb para obtener información sobre la base de datos.

Prueba las siguientes soluciones:

  • Amplía manualmente el espacio en disco o reduce los datos de la base de datos.
  • Asegúrate de que Automatic storage increase esté habilitado en la instancia de base de datos.
  • Añade más grupos de archivos y mueve datos a ellos.
  • Asegúrate de que el crecimiento no esté limitado. Usa el comando ALTER DATABASE para habilitar el crecimiento automático, si aún no lo has hecho, y para aumentar el tamaño máximo del archivo.
  • Gestionar archivos tempdb. Usa los comandos DBCC OPENTRAN y DBCC SQLPERF para comprobar si hay transacciones abiertas que puedan provocar que aumente el tamaño del archivo tempdb o del registro de transacciones.
Mensaje de error Solución de problemas
La base de datos user no existe. gcloud sql connect --user solo funciona con el usuario postgres predeterminado.

Conéctate con el usuario predeterminado y, a continuación, cambia de usuario.

El disco está lleno. El disco de la instancia principal puede llenarse durante la creación de la réplica.

Edita la instancia principal para actualizarla a un tamaño de disco mayor.

Mensaje de error Solución de problemas
No se ha podido crear la subred. No hay más direcciones disponibles en el intervalo de IP.

No se han encontrado bloques libres en los intervalos de IP asignados. Asigna nuevos intervalos a este proveedor de servicios.

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

Tenga en cuenta estas posibles situaciones:

  • El tamaño del intervalo de IPs asignado a la conexión de servicio privada es inferior a /24.
  • El tamaño del intervalo de IPs asignado a la conexión de servicio privada es demasiado pequeño para el número de instancias de Cloud SQL.
  • El requisito sobre el tamaño del intervalo de IP asignado será mayor si se crean instancias en varias regiones. Consulta el tamaño del intervalo asignado.

En cada uno de los casos anteriores, puede ampliar el intervalo de IP que ya tiene o asignar un intervalo de IP adicional a la conexión de servicio privada.

Si vas a asignar un intervalo nuevo, asegúrate de que no se solape con ninguna asignación que ya tengas.

Después de crear un intervalo de IP, actualiza 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, asegúrese de aumentar el intervalo de asignación y 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.

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

Después de ampliar un intervalo de IPs, actualiza el peering 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 tu 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 puede conectar desde Cloud Shell a una instancia que solo tenga una dirección IP privada.

Se ha recibido un paquete de más de max_allowed_packet bytes al volcar la tabla. El paquete era más grande de lo permitido por los ajustes.

Usa mysqldump con la opción max_allowed_packet.

Para obtener más información sobre el uso de las marcas mysqldump para la migración de importaciones gestionadas, consulta Marcas de sincronización inicial permitidas y predeterminadas.

Mensaje de error Solución de problemas
InnoDB: no se ha podido escribir en el archivo ./ibtmp1 en el desplazamiento XXXX. Se deberían haber escrito YYYY bytes, pero solo se han escrito 0. La instancia ha alcanzado un límite estricto al realizar una copia de seguridad automática.

Comprueba que tu sistema operativo y tu sistema de archivos admitan archivos de este tamaño. Comprueba que el disco no esté lleno o que no se haya superado la cuota de disco. Puedes solicitar que te aumentemos las cuotas desde la consolaGoogle Cloud o editar la instancia para actualizarla a un tamaño de disco mayor.

Error interno. Puede que falte la cuenta de servicio de Service Networking necesaria para esta función en el proyecto.

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

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

Habilita Service Networking API en tu proyecto. Si ves este error al intentar asignar una dirección IP privada a una instancia de Cloud SQL y estás usando una VPC compartida, también debes habilitar la Service Networking API en el proyecto host.

Mensaje de error Solución de problemas
No se ha podido iniciar sesión para el usuario "XXX". Confirma que el usuario tiene privilegios en la instancia y la base de datos a las que intenta conectarse y asegúrate de que se están usando las credenciales correctas.
Mensaje de error Solución de problemas
Tabla de metadatos bloqueada. Otra consulta, proceso o transacción está bloqueando tu consulta y ha bloqueado la tabla.

Busca el proceso que ha bloqueado la tabla y detenlo:

  1. Diagnostica con: sql> show processlist;

    El primer elemento de la lista puede ser el que tiene el bloqueo, que es lo que están esperando los elementos siguientes.

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

Habilita Service Networking API en tu proyecto. Si ves este error al intentar asignar una dirección IP privada a una instancia de Cloud SQL y estás usando una VPC compartida, también debes habilitar la Service Networking API en el proyecto host.

Mensaje de error Solución de problemas
La operación no se ha podido realizar porque había otra en curso. La mayoría de las operaciones de Cloud SQL son síncronas. Solo puedes ejecutar una a la vez.

Espera a que termine la operación anterior antes de empezar otra.

La operación no es válida para esta instancia. Este error se devuelve de una llamada a la API instances.restoreBackup. Significa que no puedes restaurar una copia de seguridad en una instancia con un tamaño de almacenamiento (XX GB) inferior al tamaño de la copia de seguridad (YY GB).

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

Mensaje de error Solución de problemas
No se ha podido autenticar al usuario "postgres" con la contraseña. Cuando creas una instancia de Cloud SQL para PostgreSQL, se crea el usuario administrador predeterminado postgres, pero no la contraseña. Debes establecer una contraseña para este usuario para que pueda iniciar sesión.

Mensaje de error Solución de problemas
Se ha superado la cuota. Has alcanzado el límite de tu cuota por minuto o diaria. Consulta las cuotas y los límites de Cloud SQL.

Puedes solicitar que te aumentemos las cuotas desde la Google Cloud consola.

Mensaje de error Solución de problemas
Los slots de conexión que quedan están reservados. Se ha alcanzado el número máximo de conexiones permitidas.

Aumenta el valor de la marca max_connections. Consulta Configurar marcas de bases de datos.

Falta una clave de API válida en la solicitud. 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.

Comprueba que tienes 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 apunta 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 de 767 bytes. Es posible que la instancia principal externa tenga definida la variable innodb_large_prefix.

Define la marca innodb_large_prefix como ON al crear la réplica o actualiza la réplica con la marca.

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

Crea un certificado de servidor y rótalo.

Se ha producido un error del 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 estas opciones ...

  • Comprueba que tengas al menos permisos de WRITER en el segmento y permisos 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 gestionar 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 Solución de problemas
Se ha cambiado la definición de la tabla. Se ha producido un cambio en la tabla durante el proceso de exportación.

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

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

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

El tamaño del archivo temporal supera temp_file_limit. La marca temp_file_limit está demasiado baja para el uso de tu base de datos.

Aumenta el tamaño de temp_file_limit. Consulta Configurar marcas de bases de datos.

La tabla db.table no existe Si una o varias tablas InnoDB han desaparecido después de reiniciar MySQL y el registro de errores de MySQL contiene las siguientes advertencias al mismo tiempo, se debe a que las columnas de clave externa y de clave de referencia 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.
      

Después de reiniciar una base de datos, MySQL necesita cargar las tablas en la caché del diccionario de InnoDB en 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
      

Si desactivas foreign_key_checks en la sesión de MySQL, podrás volver a acceder a la tabla. Una vez que se accede a la tabla y se carga en la caché del diccionario, InnoDB no comprueba ni avisa de que hay un error en la clave externa hasta que se reinicia la base de datos.

La falta de coincidencia de la clave externa debe corregirse para evitar más problemas.

  1. Inhabilita el 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 superiores y secundarias, e identifica las discrepancias entre las columnas de clave externa y de clave de 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 fija, como INTEGER y DECIMAL, son los mismos. En el caso de las columnas de cadenas de caracteres no binarias, el conjunto de caracteres y la ordenación deben ser los mismos.

  3. Para corregir la discrepancia, usa la instrucción ALTER TABLE. En algunas operaciones, es posible que tengas que eliminar primero la restricción de clave externa, aplicar el cambio y, después, volver a añadir la clave externa.
  4. Vuelve a habilitar foreign_key_checks.
    mysql> SET SESSION FOREIGN_KEY_CHECKS=1;
                
(Tiempo de espera agotado) durante la exportación. Los formatos CSV y SQL se exportan de forma diferente. El formato SQL incluye toda la base de datos y es probable que tarde más en completarse.

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

Demasiadas conexiones. Si el valor de la marca max_connections es demasiado alto, se puede producir este error. También puede deberse a que se haya habilitado una marca fuera de secuencia.

Reduce el valor de la marca max_connections o ponte en contacto con el servicio de asistencia para solicitar que se quite la marca y, a continuación, hard drain. De esta forma, la instancia se reiniciará en otro host con una configuración nueva, sin la marca ni el ajuste.

Mensaje de error Solución de problemas
No tienes autorización para conectarte. Puede haber muchas causas, ya que la autorización se produce en muchos niveles:
  • En el nivel de la base de datos, el usuario de la base de datos debe existir y su contraseña debe coincidir.
  • A nivel de proyecto, es posible que el usuario no tenga los permisos de gestión de identidades y accesos correctos, incluidos los permisos serviceusage.services.use o cloudsql.instances.connect.
  • A nivel de 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 estas opciones ...

  • Asegúrate de que el usuario exista y de que su contraseña coincida.
  • Asigna el rol Service Usage Consumer a la cuenta de usuario. Este rol 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 ocurre si usas el archivo 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 exportas datos de una base de datos MySQL 5.7 y los importas en una base de datos MySQL 8.0, asegúrate de usar el archivo binario mysqldump de MySQL 5.7. Si usas el binario mysqldump de MySQL 8.0, debes añadir la marca --column-statistics=0.

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

Hasta que se solucione, consulta esta conversación en GitHub, que incluye una solución alternativa.

Errores desconocidos

En la siguiente tabla se muestran algunos casos conocidos en los que se puede producir un Unknown Error y se indican soluciones específicas cuando procede. Sin embargo, esta lista no es exhaustiva. Si no encuentras tu caso en la tabla, consulta el gestor de incidencias público de Cloud SQL. Si no encuentras el problema, puedes enviar un informe o consultar otras opciones de asistencia.

Operación El problema puede deberse a lo siguiente: Cosas que puedes probar...
Añadir usuario Si el usuario ya existe en la base de datos, este error puede producirse cuando intentes añadirlo. Comprueba que el usuario no exista ya en la base de datos.
Copia de seguridad Si ves este mensaje 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, puedes reiniciar la instancia para eliminar el archivo y liberar espacio en el disco. De lo contrario, es posible que tengas que cambiar tu instancia a un disco de mayor tamaño.
Clonar 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.
Crear instancia
  • Esto puede ocurrir cuando intentas volver a usar el mismo nombre que una instancia que se ha eliminado recientemente.
  • También puede deberse a problemas de conectividad intermitentes.
  • En los registros puede aparecer que la API Service Networking no está habilitada en el proyecto.
  • También se ha detectado este error al intentar crear varias instancias en paralelo. Por ejemplo, las secuencias de comandos de Terraform permiten este intento.
  • Otro motivo puede ser que se haya agotado un recurso específico o que se haya superado un límite de cuota. Busca en los registros una entrada como la siguiente: Quota 'INTERNAL_FORWARDING_RULES_WITH_TARGET_INSTANCE_PER_NETWORK' exceeded. Limit: 100.0 globally
  • Este error puede producirse si no se puede crear una subred porque no hay más direcciones disponibles en el intervalo de IP.
  • Los nombres de instancia no se pueden volver a utilizar hasta aproximadamente una semana después de la eliminación.
  • En caso de que haya problemas de conectividad intermitentes, la única solución es volver a intentarlo.
  • Habilita la API Service Networking en el proyecto.
  • Los scripts de creación de instancias paralelas solo podrán crear una de las instancias. Modifica la secuencia de comandos para que espere a que se complete cada instancia de la operación de creación antes de continuar con la siguiente.
  • Asigna intervalos nuevos.
Exportar Si ves este mensaje al intentar exportar una base de datos a un segmento 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 segmento de Cloud Storage. Leer y escribir datos de un continente a otro implica un uso elevado de la red y puede provocar problemas intermitentes como este.
Conmutación por error (automática) Una operación de conmutación por error automática puede generar este mensaje de error cuando el servicio detecta que la instancia principal sigue respondiendo. No hay nada que hacer en este caso. No se producirá una conmutación por error porque no es necesaria.
Importar El archivo de importación puede contener instrucciones que requieran el rol de superusuario. Edita el archivo para eliminar las instrucciones que requieran el rol de superusuario.

Cloud SQL también usa algunos archivos binarios de terceros (por ejemplo, mysqld), que pueden generar mensajes de error desconocidos. Estos errores son internos de los archivos binarios de terceros y están fuera del ámbito 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 a la misma hora.

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