Mensagens de erro do Cloud SQL

Nesta página, mostramos algumas mensagens de erro encontradas no Cloud SQL.

Visão geral

As mensagens de erro no Cloud SQL provêm de muitas origens e aparecem em muitos lugares. Algumas mensagens de erro são derivadas dos próprios mecanismos de banco de dados, do serviço Cloud SQL, de aplicativos clientes, e outras retornadas por chamadas à API Cloud SQL Admin.

Nesta página, incluímos alguns dos erros mais comuns encontrados no Cloud SQL. Se você não encontrar nela o código de erro ou a mensagem que procura, pesquise o material de referência de origem nestes locais:

Se você não encontrar o material de referência da mensagem de erro que aparece, pesquise também em alguns destes lugares, onde outros usuários podem ter experiência relevante:

Erros operacionais

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

Mensagem de erro Solução de problemas
Conexão xxx cancelada para db: DB_NAME. O aplicativo não está encerrando as conexões corretamente.

Verifique as seguintes condições:

  • O aplicativo não chamou mysql_close() antes de sair.
  • Erros de comunicação (em inglês).
  • O aplicativo pode ter ficado suspenso por mais tempo do que o número de segundos especificado em `wait_timeout` ou `interactive_timeout` sem emitir qualquer solicitação ao servidor. Consulte a seção 5.1.7, "Variáveis de sistema do servidor".
  • O aplicativo foi encerrado repentinamente no meio de uma transferência de dados.
  • O valor da variável max_allowed_packet pode ser muito pequeno ou as consultas exigem mais memória do que o alocado para mysqld. Isso pode ser resolvido aumentando a sinalização max_allowed_packet para um número muito maior.
Acesso negado. Você precisa de (pelo menos um dos) SUPER privilégios para esta operação Pode haver uma visualização, uma função ou um procedimento no banco de dados de origem que referencie DEFINER de uma maneira que não é compatível com o Cloud SQL.

Atualize o definidor nos bancos de dados externos. Por exemplo, de root@localhost para root@% ou um não superusuário. Consulte Controle de acesso ao objeto armazenado para mais informações.

Acesso negado para o usuário 'XXX'@'XXX' (usando a senha: XXX) Pode haver várias causas, incluindo:
  • o nome de usuário (ou senha) está incorreto;
  • o usuário está se conectando de um URL diferente de @XXX;
  • o usuário não tem os privilégios corretos para o banco de dados a que está tentando se conectar.

Tente fazer o seguinte:

  • Verifique o nome de usuário e a senha correspondente.
  • Verifique a origem da conexão para ver se ela corresponde ao URL em que o usuário tem privilégios de acesso.
  • Verifique os privilégios de concessão do usuário no banco de dados.
Intervalo de IP alocado não encontrado na rede. Os peerings de VPC não foram atualizados depois que um intervalo alocado foi modificado ou removido.

É necessário modificar a conexão particular. Use o seguinte comando e certifique-se de usar o argumento --force:


gcloud services vpc-peerings update \
--network=VPC_NETWORK \
--ranges=ALLOCATED_RANGES \
--service=servicenetworking.googleapis.com \
--force
Comando "ANY" negado ao usuário 'root'@'%' para a tabela: O usuário não tem todas as permissões necessárias para a operação.

Tente o seguinte:

  1. Conecte-se ao banco de dados (por exemplo, usando o Cloud Shell) e faça login como raiz.
  2. Execute USE mysql;.
  3. Conceda as seguintes permissões usando a sintaxe:
    
    GRANT PERMISSION_1,PERMISSION_2 ON *.* TO 'root' WITH GRANT OPTION;
       
    • SELECIONAR
    • INSERT
    • ATUALIZAR
    • DELETE
    • CRIAR
    • DROP
    • ATUALIZAR
    • SHUTDOWN
    • PROCESS
    • REFERENCES
    • ÍNDICE
    • ALTER
    • SHOW DATABASES
    • CREATE TEMPORARY TABLES
    • LOCK TABLES
    • EXECUTE
    • REPLICATION SLAVE
    • REPLICATION CLIENT
    • CREATE VIEW
    • SHOW VIEW
    • CREATE ROUTINE
    • ALTER ROUTINE
    • CREATE USER
    • EVENT
    • TRIGGER
    • CREATE TABLESPACE
  4. Execute USE 'Database_Name';, em que Database_Name é o banco de dados em que você está criando as visualizações.
  5. Execute todas as visualizações de criação na sessão e confirme.
Mensagem de erro Solução de problemas
Solicitação inválida. Essa mensagem pode ter muitas causas. Illegal Argument é uma das mais comuns. Nesse caso, a solicitação está usando o argumento errado ou um valor inválido para ele. Para muitas outras causas, a mensagem de erro pode conter uma dica útil.

Para Illegal Argument, verifique a solicitação para saber se cada argumento é permitido e se cada valor de argumento é válido. Para todas as outras causas, verifique os arquivos de registros para ver se há mais informações disponíveis.

Mensagem de erro Solução de problemas
Não é possível modificar intervalos alocados em CreateConnection. Use UpdateConnection. Os peerings de VPC não são atualizados depois que um intervalo alocado é modificado ou removido.

É necessário modificar a conexão particular. Use o seguinte comando e certifique-se de usar o argumento --force:


gcloud services vpc-peerings update \
--network=VPC_NETWORK \
--ranges=ALLOCATED_RANGES \
--service=servicenetworking.googleapis.com \
--force
Conexão redefinida pelo peering.

Se você estiver tentando fazer uma exportação e o Cloud Storage não receber dados em um determinado período, a conexão será redefinida.

Tente fazer uma exportação manual usando pg_dump.

Constraints/sql.restrictAuthorizedNetworks. A operação de clonagem é bloqueada pela configuração Authorized Networks. Authorized Networks são configurados para endereços IP públicos na seção "Conectividade" do Console do Google Cloud, e a clonagem não é permitida devido a considerações de segurança.

Remova todas as entradas Authorized Networks da instância do Cloud SQL, se possível. Caso contrário, crie uma réplica sem nenhuma entrada Authorized Networks.

Não foi possível alocar uma nova página para o banco de dados database_name devido a espaço insuficiente em disco no grupo de arquivos PRIMARY. O grupo de arquivos PRIMARY, que é o grupo de arquivos principal e padrão em um banco de dados, ficou sem espaço.

Use o comando sp_helpdb para ver informações sobre o banco de dados.

Considere as seguintes soluções:

  • Expanda manualmente o espaço em disco ou reduza os dados no banco de dados.
  • Verifique se Automatic storage increase está ativado para a instância de banco de dados.
  • Adicione mais grupos de arquivos e mova dados para eles.
  • Garanta que o crescimento não seja limitado. Use o comando ALTER DATABASE para ativar o crescimento automático, se ainda não estiver ativado, e aumentar o tamanho máximo do arquivo.
  • Gerencie arquivos tempdb. Use os comandos DBCC OPENTRAN e DBCC SQLPERF para verificar se há transações abertas que podem fazer com que o arquivo tempdb ou o registro de transações aumente.
Mensagem de erro Solução de problemas
O banco de dados user não existe. gcloud sql connect --user funciona apenas com o usuário postgres padrão.

Conecte-se com o usuário padrão e mude os usuários.

O disco está cheio. O tamanho do disco da instância principal pode ficar cheio durante a criação da réplica.

Edite a instância principal com upgrade para um tamanho de disco maior.

Mensagem de erro Solução de problemas
Falha ao criar sub-rede. Não há mais endereços disponíveis no intervalo de IP.

Não foi possível encontrar blocos gratuitos em intervalos de IP alocados. Aloque novos intervalos para este provedor de serviços.

Não há mais endereços disponíveis no intervalo de IP alocado.

Considere estes cenários possíveis:

  • O tamanho do intervalo de IP alocado para a conexão de serviço particular é menor que /24.
  • O tamanho do intervalo de IP alocado para a conexão de serviço particular é muito pequeno para o número de instâncias do Cloud SQL.
  • O requisito sobre o tamanho do intervalo de IP alocado será maior se as instâncias forem criadas em várias regiões. Consulte tamanho do intervalo alocado.

Para cada um dos cenários acima, é possível expandir a opção atual ou alocar um intervalo de IP adicional para a conexão de serviço particular.

Se você estiver alocando um novo intervalo, tenha cuidado para não criar uma alocação que se sobreponha a uma alocação existente.

Depois de criar um novo intervalo de IP, atualize o peering VPC com o comando a seguir:


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

Se você estiver expandindo uma alocação atual, só aumente o intervalo de alocação em vez de diminuí-lo. Por exemplo, se a alocação original for 10.0.10.0/24, faça a nova alocação pelo menos 10.0.10.0/23.

Em geral, se começar com uma alocação de /24, diminuir a /mascaramento em 1 para cada condição (grupo de tipo de instância adicional, região adicional) é uma boa regra geral. Por exemplo, se você tentar criar os dois grupos de tipos de instância na mesma alocação, a mudança de /24 para /23 será suficiente.

Depois de expandir um intervalo de IP atual, use o seguinte comando para atualizar o peering VPC:


gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com
--ranges=RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID \
--force
Mensagem de erro Solução de problemas
(gcloud.sql.connect) Parece que o cliente não tem conectividade ipv6, e a instância do banco de dados não tem um endereço ipv4. Você está tentando se conectar à sua instância de IP particular usando o Cloud Shell.

No momento, não é possível se conectar do Cloud Shell a uma instância apenas com um endereço IP particular.

Pacote maior que max_allowed_packet bytes ao despejar tabela. O pacote era maior do que o permitido pelas configurações.

Use mysqldump com a opção max_allowed_packet.

Para saber mais sobre como usar sinalizações mysqldump para migração de importação gerenciada, consulte Sinalizações de sincronização inicial permitidas e padrão

Mensagem de erro Solução de problemas
InnoDB: a gravação no arquivo ./ibtmp1 falhou no deslocamento XXXX, AAAA bytes deveriam ter sido gravados. Somente 0 foram gravados. A instância atingiu um limite absoluto ao fazer um backup automatizado.

Verifique se o SO e o sistema de arquivos são compatíveis com arquivos desse tamanho. Verifique se o disco não está cheio ou com cota de disco insuficiente. É possível solicitar um aumento nas suas cotas pelo Console do Google Cloud ou editar a instância com upgrade para um tamanho de disco maior.

Erro interno. O projeto de serviço pode estar sem a conta de serviço de rede necessária para esse recurso.

Para corrigir as permissões do serviço, desative Service Networking API, aguarde cinco minutos e reative-o.

Solicitação inválida: configuração de rede de serviço incorreta, por exemplo. Service Networking API não está ativado no projeto.

Ative a Service Networking API no seu projeto. Se você vir esse erro ao tentar atribuir um endereço IP particular a uma instância do Cloud SQL e estiver usando uma VPC compartilhada, também será necessário ativar a Service Networking API para o projeto host.

Mensagem de erro Solução de problemas
Tabela de metadados bloqueada Outra consulta, processo ou transação está bloqueando sua consulta e bloqueou a tabela.

Encontre o processo que bloqueou a tabela e pare-o.

  1. Diagnóstico com: sql> show processlist;

    O primeiro item da lista talvez seja aquele que contém a trava, que os itens subsequentes estão esperando.

  2. O comando SHOW INNODB STATUS também pode ser útil.
  3. Execute o comando KILL <var>PID</var>;
Mensagem de erro Solução de problemas
Falha na associação de rede. A Service Networking API não está ativada no projeto.

Ative a Service Networking API no seu projeto. Se você vir esse erro ao tentar atribuir um endereço IP particular a uma instância do Cloud SQL e estiver usando uma VPC compartilhada, também será necessário ativar a Service Networking API para o projeto host.

Mensagem de erro Solução de problemas
A operação falhou porque outra operação ainda estava em andamento. A maioria das operações no Cloud SQL é síncrona. É possível executar apenas uma de cada vez.

Aguarde a operação anterior ser concluída antes de iniciar outra.

A operação não é válida para esta instância. Esse erro é retornado de uma chamada de API para instances.restoreBackup e significa que não é possível restaurar do backup para uma instância com um tamanho de armazenamento (XX GB) menor que o tamanho do backup (YY GB).

Edite a instância de destino para aumentar o tamanho de armazenamento dela.

Mensagem de erro Solução de problemas
Falha na autenticação da senha para o usuário "postgres". Quando você cria uma nova instância do Cloud SQL para PostgreSQL, o usuário administrador padrão postgres é criado, mas a senha não é criada. É necessário definir uma senha para esse usuário antes que o usuário faça login.

Mensagem de erro Solução de problemas
Cota excedida. Você atingiu o limite de sua cota diária ou por minuto. Revise as cotas e limites do Cloud SQL.

Solicite um aumento nas suas cotas pelo Console do Google Cloud.

Mensagem de erro Solução de problemas
Os slots de conexão restantes estão reservados. O número máximo de conexões permitidas foi atingido.

Aumente o valor da sinalização max_connections. Consulte Como configurar sinalizações do banco de dados.

Falta uma chave de API válida na solicitação Talvez você não tenha um arquivo JSON de chave de conta de serviço válida ou ele não esteja armazenado no local esperado.

Verifique se você tem um arquivo JSON de chave de conta de serviço válido no local armazenado na variável de ambiente GOOGLE_APPLICATION_CREDENTIALS e se a variável aponta para o local correto.

Mensagem de erro Solução de problemas
A chave especificada era muito longa. O comprimento máximo da chave é 767 bytes. A instância principal externa pode ter a variável innodb_large_prefix definida.

Defina a sinalização innodb_large_prefix como ON ao criar a réplica ou atualize a réplica atual com a sinalização.

Erro de SSL: padding inválido. Erro de certificado do servidor.

Crie um novo certificado de servidor e alterne-o.

Ocorreu um erro de sistema.
  • O usuário pode não ter todas as permissões necessárias do Cloud Storage.
  • A tabela de banco de dados pode não existir.

Tente fazer o seguinte:

  • Verifique se você tem pelo menos as permissões de WRITER no bucket e de READER no arquivo de exportação. Para mais informações sobre como configurar o controle de acesso no Cloud Storage, consulte Criar e gerenciar listas de controle de acesso.
  • Verifique se a tabela existe. Se a tabela existir, confirme se você tem as permissões corretas no bucket de armazenamento.
Mensagem de erro Solução de problemas
A definição da tabela foi alterada. Durante o processo de exportação, ocorreu uma alteração na tabela.

A transação de despejo poderá falhar se você usar as seguintes instruções durante a operação de exportação:

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

Remova qualquer uma dessas instruções da operação de despejo.

O tamanho do arquivo temporário excede temp_file_limit. A sinalização temp_file_limit está definida com valor muito baixo para o uso do banco de dados.

Aumente o tamanho de temp_file_limit. Consulte Como configurar sinalizações do banco de dados.

A tabela db.table não existe Se uma ou mais tabelas InnoDB desaparecerem após uma reinicialização do MySQL e o registro de erros do MySQL mostrar os seguintes avisos ao mesmo tempo, isso será devido à chave externa e às colunas de chave referenciadas não estarem em sincronia.

[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.
      

Após a reinicialização do banco de dados, o MySQL precisa carregar tabelas no cache do dicionário do InnoDB no primeiro acesso. Se detectar a discrepância, o acesso a essa tabela será bloqueado.


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

Desativar foreign_key_checks para a sessão do MySQL permite acesso à tabela novamente. Depois que a tabela for acessada e carregada no cache do dicionário, o InnoDB não verificará e reclamará sobre uma incompatibilidade de chave externa até a próxima reinicialização do banco de dados

A incompatibilidade de chave externa deve ser corrigida para evitar outros problemas.

  1. Desative o foreign_key_checks para a sessão do cliente mysql e acesse a tabela.
    
    mysql> SET SESSION FOREIGN_KEY_CHECKS=0;
                
  2. Inspecione as tabelas pai e filho e identifique as incompatibilidades entre a chave externa e as colunas de chave referenciadas.
    
    mysql> SHOW CREATE TABLE parent_table;
    mysql> SHOW CREATE TABLE child_table;
                

    Verifique se as colunas correspondentes têm tipos de dados semelhantes. O tamanho e o sinal dos tipos de precisão fixa, como INTEGER e DECIMAL, são os mesmos. Para colunas de strings não binárias (caractere), o conjunto de caracteres e a compilação precisam ser iguais.

  3. Corrija a incompatibilidade usando a instrução ALTER TABLE. Algumas operações podem exigir que você primeiro remova a restrição de chave externa, aplique a alteração e depois adicione a chave externa novamente.
  4. Reative foreign_key_checks novamente.
    
    mysql> SET SESSION FOREIGN_KEY_CHECKS=1;
                
(Tempo limite) durante a exportação. Os formatos CSV e SQL são exportados de maneira diferente. O formato SQL inclui todo o banco de dados e provavelmente levará mais tempo para ser concluído.

Use o formato CSV e execute vários jobs de exportação menores para reduzir o tamanho e a duração de cada operação.

Muitas conexões. Definir um valor muito alto para a sinalização max_connections pode causar esse erro. Isso também pode ser causado pela ativação de uma sinalização fora de sequência.

Reduza o valor da sinalização max_connections ou entre em contato com o suporte ao cliente para solicitar a remoção de uma sinalização, seguida de um hard drain. Isso força a instância a reiniciar em um host diferente com uma nova configuração, sem a sinalização ou a configuração.

Mensagem de erro Solução de problemas
Sem autorização para se conectar. Pode haver muitas causas, já que a autorização ocorre em muitos níveis:
  • No nível do banco de dados, o usuário do banco de dados precisa existir e a senha precisa corresponder.
  • No nível do projeto, o usuário pode não ter as permissões de IAM corretas, incluindo as permissões serviceusage.services.use ou cloudsql.instances.connect.
  • No nível da rede, se a instância do Cloud SQL estiver usando IP público, o IP de origem da conexão precisa estar em uma rede autorizada.

Tente fazer o seguinte:

  • Verifique se o usuário existe e corresponde à senha.
  • Atribua o papel Service Usage Consumer à conta de usuário. Esse papel inclui a permissão serviceusage.services.use.
  • Se estiver usando IP público, verifique se o IP de origem está em uma rede autorizada.
Tabela desconhecida COLUMN_STATISTICS em information_schema. Isso acontece se você usar o binário mysqldump do MySQL 8.0 para fazer dump de dados de um banco de dados MySQL 5.7 e importá-los para um banco de dados MySQL 8.0.

Se você fizer dump de dados de um banco de dados MySQL 5.7 e importá-los para um banco de dados MySQL 8.0, use o binário mysqldump do MySQL 5.7. Se você usar o binário mysqldump do MySQL 8.0, será necessário adicionar a sinalização --column-statistics=0.

Mensagem de erro Solução de problemas
x509: o certificado não é válido para nenhum nome. Problema conhecido: no momento, o Cloud SQL Proxy Dialer (em inglês) não é compatível com o Go 1.15.

Até que o problema seja resolvido, confira esta discussão no GitHub (em inglês), que inclui uma solução alternativa.

Erros desconhecidos

A tabela a seguir mostra alguns casos conhecidos em que um Unknown Error pode ocorrer e lista correções específicas quando aplicável. No entanto, esta não é uma lista completa. Se você não encontrar seu caso na tabela, consulte o Issue Tracker público do Cloud SQL. Se você não encontrar o problema, envie um relatório ou leia outras opções de suporte.

Operação O problema pode ser... O que você deve tentar...
Adicionar usuário Se o usuário já existir no banco de dados, esse erro poderá ocorrer quando você tentar adicioná-lo. Verifique se o usuário já não existe no banco de dados.
Backup Se isso aparecer durante os backups automáticos ou manuais, é provável que o disco da instância esteja cheio. Se o tamanho do arquivo temporário estiver ocupando muito espaço, reinicie a instância para remover esse arquivo e liberar o espaço no disco. Caso contrário, talvez seja necessário fazer upgrade da instância para um tamanho de disco maior.
Clonar Isso pode ocorrer quando há uma falta de recursos na zona selecionada. Tente outra zona na região ou aguarde e tente novamente mais tarde.
Criar instância
  • Isso pode ocorrer quando você tenta reutilizar o mesmo nome de uma instância excluída recentemente.
  • Também pode ser causado por problemas de conectividade intermitente.
  • Os registros podem mostrar que a API Service Networking não está ativada para o projeto.
  • O erro também foi visto ao tentar criar várias instâncias em paralelo. Por exemplo, os scripts do Terraform tornam essa tentativa possível.
  • O problema também pode ocorrer porque um recurso específico está esgotado ou um limite de cota foi excedido. Nos registros, procure uma entrada como Quota 'INTERNAL_FORWARDING_RULES_WITH_TARGET_INSTANCE_PER_NETWORK' exceeded. Limit: 100.0 globally
  • Esse erro poderá ocorrer se a criação da sub-rede falhar quando não houver mais endereços disponíveis no intervalo de IP.
  • Os nomes de instância só podem ser reutilizados uma semana após a exclusão.
  • No caso de problemas de conectividade intermitente, a única solução é tentar novamente.
  • Ative a API Service Networking no projeto host.
  • Scripts de criação de instâncias paralelas só terão êxito na criação de uma das instâncias. Modifique o script para aguardar até que cada operação de criação da instância seja concluída antes de avançar para a próxima.
  • Alocar novos intervalos.
Exportar Se você vir isso ao tentar exportar um banco de dados para um bucket do Cloud Storage, a transferência poderá falhar devido a um problema de largura de banda. A instância do Cloud SQL pode estar localizada em uma região diferente do bucket do Cloud Storage. A leitura e a gravação de dados de um continente para outro envolve o uso excessivo de rede e pode causar problemas intermitentes como esse.
Failover (automático) Uma operação de failover automática pode produzir essa mensagem de erro quando o serviço detecta que a instância principal ainda é responsiva. Não há nada a ser feito nesse caso. O failover não ocorrerá porque não é necessário.
Importar O arquivo de importação pode conter instruções que exijam o papel de superusuário. Edite o arquivo para remover instruções que exigem o papel de superusuário.

O Cloud SQL também usa alguns binários de terceiros (por exemplo, mysqld), que podem gerar mensagens de erro desconhecidas. Esses erros são internos para os binários de terceiros e estão fora do escopo do Cloud SQL. No entanto, às vezes, um erro mais específico pode ser encontrado nos arquivos de registros do Cloud SQL ao mesmo tempo.

Além disso, algumas vezes é um código de erro desconhecido. Nesse caso, a mensagem completa pode ser Unknown Error Code.