Messaggi di errore di Cloud SQL

Questa pagina illustra alcuni dei messaggi di errore riscontrati in Cloud SQL.

Panoramica

I messaggi di errore di Cloud SQL provengono da molte origini e compaiono in molte luoghi. Alcuni messaggi di errore provengono dai motori del database, altri da il servizio Cloud SQL, altre da applicazioni client e altre restituite dalle chiamate all'API Cloud SQL Admin.

Questa pagina include alcuni degli errori più comuni riscontrati in in Cloud SQL. Se non trovi il codice o il messaggio di errore che stai cercando qui puoi cercare materiale di riferimento originale:

Se non trovi il materiale di riferimento per il messaggio di errore visualizzato, puoi anche cercare in alcune delle posizioni in cui altri utenti potrebbero avere contenuti esperienza utente:

Errori operativi

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

Messaggio di errore Risoluzione dei problemi
Connessione xxx al database interrotta: DB_NAME. L'applicazione non termina correttamente le connessioni.

Verifica le seguenti condizioni:

  • L'applicazione non ha chiamato mysql_close() prima di uscire.
  • Errori di comunicazione.
  • L'applicazione potrebbe aver dormito più del numero di secondi specificati in "wait_timeout" o "interactive_timeout" senza inviando richieste al server. Vedi Sezione 5.1.7, Variabili di sistema del server.
  • L'applicazione è terminata bruscamente durante un trasferimento di dati.
  • Il valore della variabile max_allowed_packet potrebbe essere troppo piccolo o le query richiedono più memoria di quella allocata per mysqld. Il problema può essere risolto aumentando max_allowed_packet a un numero molto maggiore.
Accesso negato. Per questa operazione sono necessari almeno uno dei privilegi SUPER. Nell'origine potrebbe esserci una visualizzazione, una funzione o una procedura database che fa riferimento a DEFINER in un modo non supportato da Cloud SQL.

Aggiorna il definitore nei database esterni, ad esempio da root@localhost a root@% o non è un super user. Vedi Controllo dell'accesso agli oggetti archiviati per ulteriori informazioni.

Accesso negato per l'utente "XXX"@"XXX" (con password: XXX) Le cause possono essere diverse, tra cui:
  • Il nome utente (o la password) non è corretto.
  • L'utente si sta connettendo da un URL diverso da @XXX.
  • L'utente non dispone dei privilegi appropriati per il database a cui stanno tentando di connettersi.

Prova queste soluzioni ...

  • Verifica il nome utente e la password corrispondente.
  • Controlla l'origine della connessione per verificare se corrisponde all'URL in cui l'utente dispone di privilegi di accesso.
  • Verifica la concessione dei privilegi dell'utente nel database.
Intervallo IP allocato non trovato nella rete. I peering VPC non sono stati aggiornati dopo la modifica di un intervallo allocato o rimosso.

Devi modificare la connessione privata. Utilizza il comando seguente e rendi assicurati di utilizzare l'argomento --force:

gcloud services vpc-peerings update \
--network=VPC_NETWORK \
--ranges=ALLOCATED_RANGES \
--service=servicenetworking.googleapis.com \
--force
QUALSIASI comando negato all'utente 'root'@'%' per la tabella ... L'utente non dispone di tutte le autorizzazioni necessarie per questa operazione.

Prova questa procedura:

  1. Connettersi al database (ad esempio utilizzando Cloud Shell) e accedi come root.
  2. Esegui USE mysql;.
  3. Concedi le seguenti autorizzazioni utilizzando la sintassi:
    GRANT PERMISSION_1,PERMISSION_2 ON *.* TO 'root' WITH GRANT OPTION;
       
    • SELEZIONA
    • INSERT
    • AGGIORNA
    • ELIMINA
    • CREA
    • RILASCIA
    • RICARICA
    • SPEGNIMENTO
    • ELABORAZIONE
    • RIFERIMENTI
    • INDICE
    • ALTER
    • MOSTRA DATABASE
    • CREA TABELLE TEMPORANEE
    • BLOCCA TABELLE
    • ESEGUI
    • SLAVE DI REPLICAZIONE
    • CLIENT REPLICATION
    • CREA VISTA
    • MOSTRA VISUALIZZAZIONE
    • CREA ROUTINE
    • ROUTINE ALTER
    • CREA UTENTE
    • EVENTO
    • ATTIVATORE
    • CREATE TABLESPACE
  4. Esegui USE 'Database_Name'; dove Database_Name è il database in cui crei le viste.
  5. Esegue tutte le visualizzazioni di creazione nella sessione ed esegue il commit.
Messaggio di errore Risoluzione dei problemi
Richiesta errata. Questo messaggio può avere diverse cause. Illegal Argument è uno tra le più comuni. In questo caso, la richiesta utilizza il modulo o un valore non valido per l'argomento. Per tanti altri cause, il messaggio di errore potrebbe contenere un suggerimento utile.

Per Illegal Argument, controlla la richiesta per assicurarti che ogni e ogni valore dell'argomento è valido. Per Tutte le altre cause, controlla i file di log per vedere se ci sono altre informazioni lì.

Messaggio di errore Risoluzione dei problemi
Impossibile modificare gli intervalli allocati in CreateConnection. Utilizza UpdateConnection. I peering VPC non sono stati aggiornati dopo che un intervallo allocato è stato modificato o rimosso.

Devi modificare la connessione privata. Usa il comando seguente e assicurati di utilizzare l'argomento --force:

gcloud services vpc-peerings update \
--network=VPC_NETWORK \
--ranges=ALLOCATED_RANGES \
--service=servicenetworking.googleapis.com \
--force
Connessione reimpostata dal peer.

Se stai tentando di eseguire un'esportazione e Cloud Storage ricevere dati entro un determinato periodo di tempo, la connessione viene reimpostata.

Prova un'esportazione manuale utilizzando pg_dump.

Constraints/sql.restrictAuthorizedNetworks. L'operazione di clonazione è bloccata dal Configurazione di Authorized Networks. Authorized Networks sono configurati per gli indirizzi IP pubblici nella sezione Connettività di dalla console Google Cloud e la clonazione non è consentita a causa considerazioni sulla sicurezza.

Rimuovi tutte le voci Authorized Networks da Cloud SQL se puoi. Altrimenti, crea una replica senza voci Authorized Networks.

Impossibile allocare una nuova pagina per il database database_name a causa di spazio su disco insufficiente nel gruppo di file PRIMARY. Il filegroup PRIMARY, che è il filegroup principale e predefinito in un ha esaurito lo spazio.

Utilizza il comando sp_helpdb per visualizzare informazioni sul database.

Prendi in considerazione le seguenti soluzioni:

  • Espandere manualmente lo spazio su disco o ridurre i dati nel database.
  • Assicurati che Automatic storage increase sia abilitato per l'istanza di database.
  • Aggiungi altri gruppi di file e sposta i dati al loro interno.
  • Assicurati che la crescita non sia limitata. Utilizza il comando ALTER DATABASE per abilitare la crescita automatica, se non è già abilitata, e per aumentare la dimensione massima del file.
  • Gestire i file tempdb. Utilizza i comandi DBCC OPENTRAN e DBCC SQLPERF per verificare le transazioni aperte che possono causare l'aumento del file tempdb o del log delle transazioni.
Messaggio di errore Risoluzione dei problemi
Il database user non esiste. gcloud sql connect --user funziona solo con l'utente predefinito postgres.

Connettiti con l'utente predefinito e cambia gli utenti.

Lo spazio sul disco è esaurito. La dimensione del disco dell'istanza principale può diventare piena durante la creazione della replica.

Modifica l'istanza principale per eseguirne l'upgrade a una dimensione del disco maggiore.

Messaggio di errore Risoluzione dei problemi
Impossibile creare la subnet. Non ci sono altri indirizzi disponibili nell'intervallo IP.

Impossibile trovare blocchi gratuiti negli intervalli IP allocati. Assegna nuovi intervalli per questo provider di servizi.

Non sono disponibili altri indirizzi nell'intervallo IP allocato.

Considera questi possibili scenari:

  • La dimensione dell'intervallo IP allocato per la connessione al servizio privato è minore di /24.
  • La dimensione dell'intervallo IP allocato per la connessione al servizio privato è troppo piccolo per il numero di istanze Cloud SQL.
  • Il requisito relativo alla dimensione dell'intervallo IP allocato sarà maggiore se le istanze vengono create in più regioni. Vedi la dimensione intervallo allocato

Per ciascuno degli scenari di cui sopra, puoi scegliere di espandere la campagna alloca un intervallo IP aggiuntivo alla connessione privata ai servizi.

Se stai allocando un nuovo intervallo, assicurati di non creare un'allocazione che si sovrappone a eventuali allocazioni esistenti.

Dopo aver creato un nuovo intervallo IP, aggiorna il peering VPC con il seguente 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

Se stai espandendo un'allocazione esistente, assicurati di aumentare solo il valore l'intervallo di allocazione e non diminuirlo. Ad esempio, se l'allocazione originale era 10.0.10.0/24, imposta la nuova allocazione almeno su 10.0.10.0/23.

In generale, se parte da un'allocazione /24, riduci la dimensione /mask di 1 per ogni condizione (gruppo di tipi di istanze aggiuntivo, regione aggiuntiva) è una buona regola empirica. Ad esempio, se provi a creare entrambi i gruppi di tipi di istanza nella la stessa allocazione, passare da /24 a /23 è sufficiente.

Dopo aver ampliato un intervallo IP esistente, aggiorna il peering VPC con il seguente comando:

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com
--ranges=RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID \
--force
Messaggio di errore Risoluzione dei problemi
(gcloud.sql.connect) Sembra che il tuo client non abbia ipv6 e l'istanza del database non ha un indirizzo ipv4. Stai tentando di connetterti alla tua istanza IP privato utilizzando Cloud Shell.

Connessione da Cloud Shell a un'istanza con solo un IP privato non è attualmente supportato.

Il pacchetto è più grande di max_allowed_packet byte quando di dumping. Il pacchetto era più grande di quanto consentito dalle impostazioni.

Utilizza mysqldump con l'opzione max_allowed_packet.

Per scoprire di più sull'utilizzo dei flag mysqldump per gli account gestiti, importare migrazione, consulta Flag di sincronizzazione iniziale consentiti e predefiniti

Messaggio di errore Risoluzione dei problemi
InnoDB: scrittura nel file ./ibtmp1 non riuscita in data offset XXXX, AAAA byte dovrebbero essere stati scritti, solo 0 sono stati scritti. L'istanza ha raggiunto un limite fisso durante l'esecuzione di un backup automatico.

Verifica che il sistema operativo e il file system supportino file di queste dimensioni. Controlla che il disco non sia pieno o esaurito. quota del disco. Puoi richiedere l'aumento delle tue quote dalla console Google Cloud o modificare l'istanza per eseguirne l'upgrade a una dimensione del disco più grande.

Errore interno. Nel progetto potrebbe mancare l'account di servizio Service Networking richiesto per questa funzionalità.

Per correggere le autorizzazioni del servizio, disattiva il Service Networking API, attendere cinque minuti e riattivare la funzionalità.

Richiesta non valida: configurazione di Service Networking errata per l'istanza. Service Networking API non è abilitato nel progetto.

Attiva Service Networking API nel tuo progetto. Se visualizzi questo errore quando tenti di assegnare un'istanza a un'istanza Cloud SQL e stai utilizzando un VPC condiviso, Devi inoltre abilitare Service Networking API per il progetto host.

Messaggio di errore Risoluzione dei problemi
Tabella dei metadati bloccata. Un'altra query, processo o transazione sta bloccando la tua query e nella tabella.

Trova il processo che ha bloccato la tabella e lo interrompi:

  1. Diagnosi con: sql> show processlist;

    Il primo elemento dell'elenco potrebbe essere quello con il lucchetto, che i seguenti elementi stanno aspettando.

  2. Anche il comando SHOW INNODB STATUS può essere utile.
  3. Esegui il comando KILL <var>PID</var>.
Messaggio di errore Risoluzione dei problemi
Associazione di rete non riuscita. Service Networking API non è abilitato nel progetto.

Attiva Service Networking API nel tuo progetto. Se visualizzi questo errore quando tenti di assegnare un'istanza a un'istanza Cloud SQL e stai utilizzando un VPC condiviso, Devi inoltre abilitare Service Networking API per il progetto host.

Messaggio di errore Risoluzione dei problemi
Operazione non riuscita perché è già in corso un'altra operazione. La maggior parte delle operazioni in Cloud SQL è sincrona. Puoi una sola volta alla volta.

Attendi il completamento dell'operazione precedente prima di iniziarne un'altra.

Operazione non valida per questa istanza. Questo errore viene restituito da una chiamata API a instances.restoreBackup e indica che non puoi eseguire il ripristino da un backup in un'istanza con uno spazio di archiviazione (XX GB) inferiore alle dimensioni del backup (YY GB).

Modifica l'istanza di destinazione per aumentarne le dimensioni di archiviazione.

Messaggio di errore Risoluzione dei problemi
Autenticazione password non riuscita per l'utente "postgres". Quando crei una nuova istanza Cloud SQL per PostgreSQL, L'utente amministratore predefinito postgres è stato creato, ma non la password. Devi imposta una password per questo utente prima che possa accedere.

Messaggio di errore Risoluzione dei problemi
Quota superata. Hai raggiunto il limite della tua quota al minuto o giornaliera. Esamina il quote e limiti per Cloud SQL.

Richiedi un aumento delle tue quote dalla console Google Cloud.

Messaggio di errore Risoluzione dei problemi
Gli slot di connessione rimanenti sono riservati. È stato raggiunto il numero massimo di connessioni consentite.

Aumenta il valore del flag max_connections. Consulta Configurazione dei flag di database.

Nella richiesta manca una chiave API valida. Potresti non avere un file JSON della chiave dell'account di servizio valido o questo potrebbe non essere memorizzato nella posizione prevista.

Verifica di avere un file JSON valido per la chiave dell'account di servizio in la posizione memorizzata nell'GOOGLE_APPLICATION_CREDENTIALS di variabile di ambiente e che la variabile indirizzi alla posizione corretta.

Messaggio di errore Risoluzione dei problemi
La chiave specificata era troppo lunga. la lunghezza massima della chiave è 767 byte. Per l'istanza principale esterna potrebbe essere impostata la variabile innodb_large_prefix.

Imposta il flag innodb_large_prefix su ON durante la creazione della replica o aggiorna la replica esistente con il flag.

Errore SSL: spaziatura interna non valida. Errore del certificato server.

Crea un nuovo certificato del server e ruotalo.

Si è verificato un errore di sistema.
  • L'utente potrebbe non disporre di tutte le autorizzazioni di Cloud Storage necessarie.
  • La tabella di database potrebbe non esistere.

Prova queste soluzioni ...

  • Verifica di disporre almeno delle autorizzazioni WRITER per il bucket e delle autorizzazioni READER per il file di esportazione. Per ulteriori informazioni sulla configurazione del controllo dell'accesso in Cloud Storage, consulta Crea e gestisci Elenchi di controllo dell'accesso
  • Assicurati che la tabella esista. Se la tabella esiste, verifica di avere le autorizzazioni corrette per il bucket di archiviazione.
Messaggio di errore Risoluzione dei problemi
Definizione della tabella modificata. Durante il processo di esportazione, è stata apportata una modifica alla tabella.

La transazione di dump può non riuscire se utilizzi le seguenti istruzioni durante l'operazione di esportazione:

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

Rimuovi una di queste istruzioni dall'operazione di dump.

Le dimensioni del file temporaneo superano il limite di temp_file_limit. Il flag temp_file_limit è impostato su un valore troppo basso per l'utilizzo del database.

Aumenta la dimensione di temp_file_limit. Consulta Configurazione dei flag di database.

La tabella db.table non esiste Se una o più tabelle InnoDB sono scomparse dopo un riavvio di MySQL e il log degli errori di MySQL contiene contemporaneamente i seguenti avvisi, significa che le colonne della chiave esterna e della chiave di riferimento non sono sincronizzate.
[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.
      

Dopo il riavvio del database, MySQL deve caricare le tabelle in InnoDB cache del dizionario al primo accesso. Se rileva la discrepanza, blocca l'accesso alla tabella.

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

La disattivazione di foreign_key_checks per la sessione MySQL consente l'accesso a di nuovo la tabella. Dopo aver eseguito l'accesso e caricato la tabella dizionario cache, InnoDB non controlla e non si lamenta di una chiave esterna mancata corrispondenza fino al successivo riavvio del database

La mancata corrispondenza della chiave esterna deve essere corretta per evitare ulteriori problemi.

  1. Disattiva foreign_key_checks per il client mysql sessione e accedere alla tabella.
    mysql> SET SESSION FOREIGN_KEY_CHECKS=0;
                
  2. Ispeziona le tabelle padre e secondaria e identifica le mancate corrispondenze tra la chiave esterna e le colonne delle chiavi di riferimento.
    mysql> SHOW CREATE TABLE parent_table;
    mysql> SHOW CREATE TABLE child_table;
                

    Verifica che le colonne corrispondenti abbiano tipi di dati simili. La dimensione e segno di tipi di precisione fissi come INTEGER e DECIMAL sono le stesse. Per le colonne di stringhe (di caratteri) non binarie, il valore il set di caratteri e le regole di confronto devono essere uguali.

  3. Correggi la mancata corrispondenza utilizzando l'istruzione ALTER TABLE. Alcune operazioni potrebbero richiedere prima il rilascio del vincolo di chiave esterna, applica la modifica, quindi aggiungi di nuovo la chiave esterna.
  4. Riattiva foreign_key_checks.
    mysql> SET SESSION FOREIGN_KEY_CHECKS=1;
                
(Timeout) durante l'esportazione. I formati CSV e SQL esportano in modo diverso. Il formato SQL include l'intero e il suo completamento richiederà più tempo.

Utilizza il formato CSV ed esegui più job di esportazione di dimensioni inferiori per ridurne le dimensioni durata di ogni operazione.

Troppe connessioni. L'impostazione di un valore troppo alto per il flag max_connections può causare questo problema . Questo può anche essere causato dall'attivazione di un indicatore fuori sequenza.

Riduci il valore del flag max_connections oppure contatta assistenza clienti per richiedere la rimozione di una segnalazione seguita da un hard drain. L'istanza viene riavviata forzatamente su un host diverso con una configurazione nuova, senza il flag o l'impostazione.

Messaggio di errore Risoluzione dei problemi
Connessione non autorizzata. Le cause dell'autorizzazione possono essere molteplici:
  • A livello di database, l'utente del database deve esistere e la sua password deve corrispondere
  • A livello di progetto, l'utente potrebbe non disporre delle autorizzazioni IAM corrette. tra cui serviceusage.services.use o Autorizzazioni cloudsql.instances.connect.
  • A livello di rete, se l'istanza Cloud SQL utilizza un IP pubblico l'IP di origine della connessione deve trovarsi in una rete autorizzata.

Prova a procedere nel seguente modo:

  • Assicurati che l'utente esista e che la password corrisponda.
  • Assegna il ruolo Service Usage Consumer all'account utente. Questo ruolo include l'autorizzazione serviceusage.services.use.
  • Se utilizzi un IP pubblico, assicurati che l'IP di origine si trovi in una rete autorizzata.
Tabella COLUMN_STATISTICS sconosciuta in information_schema. Questo accade se utilizzi il programma binario mysqldump di MySQL 8.0 per eseguire il dump da un database MySQL 5.7 e importarli in un database MySQL 8.0.

Se esegui il dump dei dati da un database MySQL 5.7 e li importi in un database MySQL 8.0, assicurati di utilizzare il programma binario mysqldump di MySQL 5.7. Se utilizzi mysqldump da MySQL 8.0, devi aggiungere il metodo Flag --column-statistics=0.

Messaggio di errore Risoluzione dei problemi
x509: il certificato non è valido per nessun nome. Problema noto: Al momento, Cloud SQL Proxy Dialer non è compatibile con Go 1.15.

Fino alla correzione, vedi questa discussione su GitHub, che include una soluzione alternativa.

Errori sconosciuti

La seguente tabella mostra alcuni casi noti in cui un Unknown Error ed elenca i rimedi specifici, ove applicabile. Tuttavia, non si tratta di un elenco completo. Se non trovi il tuo caso nella tabella, consulta il problema pubblico tracker per Cloud SQL. Se non trovi il problema qui, considera inviare una segnalazione o esaminare altre opzioni di assistenza.

Operazione Il problema potrebbe essere... Da provare...
Aggiungi utente Se l'utente esiste già nel database, questo errore può verificarsi quando provi ad aggiungerlo. Verifica che l'utente non esista già nel per configurare un database.
Backup Se riscontri questo problema durante i backup automatici o manuali, è probabile che se il disco dell'istanza è pieno. Se le dimensioni del file temporaneo occupano troppo spazio, puoi: riavvia l'istanza per rimuovere il file e liberare spazio su disco. In caso contrario, potresti dover eseguire l'upgrade dell'istanza a un disco più grande dimensioni.
Clona Questo può accadere quando c'è una carenza di risorse nella nella zona selezionata. Prova con un'altra zona della regione o attendi e riprova più tardi.
Crea istanza
  • Questo può accadere quando tenti di riutilizzare lo stesso nome di eliminata di recente.
  • Può anche essere causato da problemi di connettività intermittenti.
  • I log potrebbero indicare che l'API Service Networking non è abilitata per il progetto.
  • L'errore si è verificato anche durante il tentativo di creare in parallelo. Ad esempio, gli script Terraform rendono possibile questo tentativo.
  • Un'altra causa può essere l'esaurimento di una risorsa specifica è stato superato un limite di quota. Cerca nei log una voce come Quota 'INTERNAL_FORWARDING_RULES_WITH_TARGET_INSTANCE_PER_NETWORK' exceeded. Limit: 100.0 globally
  • Questo errore può verificarsi se la creazione della subnet non riesce quando non sono più indirizzi disponibili nell'intervallo IP.
  • I nomi delle istanze non possono essere riutilizzati fino a circa una settimana dopo l'eliminazione dei dati.
  • In caso di problemi di connettività intermittente, l'unico rimedio è Riprova.
  • Abilita l'API Service Networking per il progetto.
  • Gli script di creazione di istanze parallele riusciranno a creare solo una delle istanze. Modifica lo script in modo che attenda il completamento di ogni operazione di creazione dell'istanza prima di passare a quella successiva.
  • Assegna nuovi più intervalli.
Esporta Se vedi questo messaggio mentre tenti di esportare un database in una nel bucket Cloud Storage, il trasferimento potrebbe non riuscire a causa di una larghezza di banda problema. L'istanza Cloud SQL potrebbe trovarsi in una regione diversa rispetto al bucket Cloud Storage. Lettura e scrittura di dati da un da un continente a un altro comporta un utilizzo elevato della rete e può causare problemi intermittenti come questo.
Failover (automatico) Un'operazione di failover automatico può produrre questo messaggio di errore quando il servizio rileva che l'istanza principale è ancora reattiva. In questo caso non devi fare nulla. Il failover non verrà eseguito perché non è necessario.
Importa Il file di importazione può contenere istruzioni che richiedono il super user ruolo. Modifica il file per rimuovere eventuali istruzioni che richiedono il ruolo superutente.

Cloud SQL utilizza anche alcuni programmi binari di terze parti (ad esempio, mysqld), che può generare messaggi di errore sconosciuti. Tali errori sono interni a file binari di terze parti e non rientrano nell'ambito di Cloud SQL. Tuttavia, a volte è possibile trovare un errore più specifico nei file dei log di Cloud SQL più o meno nello stesso momento.

Inoltre, a volte si tratta di un codice di errore sconosciuto. In questo caso, il messaggio completo può essere Unknown Error Code.