Messaggi di errore di Cloud SQL per MySQL

In questa pagina vengono descritti alcuni messaggi di errore riscontrati in Cloud SQL.

Panoramica

I messaggi di errore in Cloud SQL provengono da molte origini e sono visualizzati in molte posizioni. Alcuni messaggi di errore provengono dai motori del database, altri dal servizio Cloud SQL, altri dalle applicazioni client e altri ancora dalle chiamate all'API Cloud SQL Admin.

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

Se non trovi il materiale di riferimento per il messaggio di errore visualizzato, puoi anche eseguire una ricerca in alcune delle seguenti posizioni in cui altri utenti potrebbero avere un'esperienza pertinente:

Errori operativi

A | B | C | D | E | F | G | I | L | M | N | O | P{/5 | P{/2 |RT

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 specificato in "wait_timeout" o "interactive_timeout" senza inviare richieste al server. Consulta la 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. Per risolvere il problema, aumenta il flag max_allowed_packet a un numero molto più grande.
Accesso negato. Devi disporre di almeno uno dei privilegi SUPER per questa operazione. Il database di origine potrebbe avere una vista, una funzione o una procedura 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 come non un super user. Per ulteriori informazioni, consulta Controllo dell'accesso agli oggetti archiviati.

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

Prova queste cose ...

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

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


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

Prova questa procedura:

  1. Connettiti al database (ad esempio utilizzando Cloud Shell) e accedi come root.
  2. Esegui USE mysql;.
  3. Concedi le autorizzazioni seguenti utilizzando la sintassi:
    
    GRANT PERMISSION_1,PERMISSION_2 ON *.* TO 'root' WITH GRANT OPTION;
       
    • SELECT
    • INSERISCI
    • AGGIORNA
    • ELIMINA
    • CREA
    • CALO
    • RICARICA
    • SHUTDOWN
    • ELABORAZIONE
    • RIFERIMENTI
    • INDICE
    • ALTER
    • MOSTRA DATABASE
    • CREA TABELLE TEMPORANEE
    • BLOCCA TABELLE
    • ESEGUI
    • SLAVE DELLA REPLICAZIONE
    • CLIENTI PER LA REPLICAZIONE
    • CREA VISTA
    • MOSTRA VISTA
    • CREA ROUTINE
    • ALTER ROUTINE
    • CREA UTENTE
    • EVENTO
    • ATTIVAZIONE
    • CREA SPAZIO TABELLA
  4. Esegui USE 'Database_Name';, dove Database_Name è il database in cui stai creando le viste.
  5. Esegue tutte le creazione di visualizzazioni nella sessione e nel commit.
Messaggio di errore Risoluzione dei problemi
Richiesta non valida. Questo messaggio può avere molte cause. Illegal Argument è uno dei più comuni. In questo caso, la richiesta utilizza l'argomento sbagliato o un valore non valido per l'argomento. Per molte altre cause, il messaggio di errore potrebbe contenere un suggerimento utile.

Per Illegal Argument, controlla la richiesta per assicurarti che ogni argomento sia consentito e che ogni valore dell'argomento sia valido. Per tutte le altre cause, controlla i file di log per verificare se sono disponibili ulteriori informazioni.

Messaggio di errore Risoluzione dei problemi
Impossibile modificare gli intervalli allocati in CreateConnection. Utilizza UpdateConnection. I peering VPC non sono stati aggiornati dopo la modifica o la rimozione di un intervallo allocato.

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


gcloud services vpc-peerings update \
--network=VPC_NETWORK \
--ranges=ALLOCATED_RANGES \
--service=servicenetworking.googleapis.com \
--force
Constraints/sql.restrictAuthorizedNetworks. L'operazione di clonazione è bloccata dalla configurazione Authorized Networks. Authorized Networks sono configurati per indirizzi IP pubblici nella sezione Connettività della console Google Cloud e la clonazione non è consentita per considerazioni sulla sicurezza.

Se puoi, rimuovi tutte le voci Authorized Networks dall'istanza Cloud SQL. In caso contrario, crea una replica senza voci Authorized Networks.

Messaggio di errore Risoluzione dei problemi
Lo spazio sul disco è esaurito. Le dimensioni del disco dell'istanza principale possono essere esaurite durante la creazione della replica.

Modifica l'istanza principale per eseguirne l'upgrade a una dimensione del disco più grande.

Messaggio di errore Risoluzione dei problemi
Impossibile creare la subnet. Nessun altro indirizzo disponibile nell'intervallo IP.

Impossibile trovare blocchi liberi negli intervalli IP allocati. Alloca nuovi intervalli per questo fornitore di servizi.

Non ci sono altri indirizzi disponibili nell'intervallo IP allocato.

Considera questi scenari possibili:

  • La dimensione dell'intervallo IP allocato per la connessione privata ai servizi è inferiore a /24.
  • La dimensione dell'intervallo IP allocato per la connessione privata al servizio è troppo piccola 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 le dimensioni dell'intervallo allocato

Per ciascuno degli scenari precedenti, puoi scegliere di espandere l'intervallo IP esistente o di allocare un intervallo IP aggiuntivo alla connessione privata al servizio.

Se stai assegnando un nuovo intervallo, assicurati di non creare un'allocazione che si sovrapponga ad 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 l'intervallo di allocazione e non di 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, una buona regola generale è diminuire il valore di /mask di 1 per ogni condizione (gruppo di tipi di istanza aggiuntivo, regione aggiuntiva). Ad esempio, se si cerca di creare entrambi i gruppi di tipi di istanza sulla 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) Il tuo client non dispone della connettività ipv6 e l'istanza del database non ha un indirizzo ipv4. Stai tentando di connetterti alla tua istanza IP privata utilizzando Cloud Shell.

La connessione da Cloud Shell a un'istanza con solo un indirizzo IP privato non è attualmente supportata.

È stato trovato un pacchetto più grande di max_allowed_packet byte durante il dump della tabella. 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 la migrazione dell'importazione gestita, consulta Flag di sincronizzazione iniziale consentiti e predefiniti

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

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

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

Per riparare le autorizzazioni del servizio, disabilita Service Networking API, attendi cinque minuti e riattivalo.

Richiesta non valida: configurazione di Networking di servizi non corretta, ad esempio. Service Networking API non è abilitato nel progetto.

Abilita Service Networking API nel progetto. Se visualizzi questo errore quando tenti di assegnare un indirizzo IP privato a un'istanza Cloud SQL e utilizzi un VPC condiviso, devi abilitare anche Service Networking API per il progetto host.

Messaggio di errore Risoluzione dei problemi
Tabella dei metadati bloccata. Un'altra query, un altro processo o una transazione blocca la query e blocca la tabella.

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

  1. Esegui la diagnostica con: sql> show processlist;

    Il primo elemento nell'elenco potrebbe essere quello che tiene il lucchetto, mentre i seguenti elementi sono in attesa.

  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.

Abilita Service Networking API nel progetto. Se visualizzi questo errore quando tenti di assegnare un indirizzo IP privato a un'istanza Cloud SQL e utilizzi un VPC condiviso, devi abilitare anche 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 eseguirne solo uno 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 significa che non puoi eseguire il ripristino dal backup in un'istanza con dimensioni di archiviazione (XX GB) inferiori a quelle del backup (YY GB).

Modifica l'istanza di destinazione per aumentare le dimensioni dello spazio di archiviazione.

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

Richiedi un aumento delle 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 oppure potrebbe non essere archiviato nella posizione prevista.

Verifica di avere un file JSON della chiave dell'account di servizio valido nella posizione archiviata nella variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS e che la variabile rimandi alla posizione corretta.

Messaggio di errore Risoluzione dei problemi
La chiave specificata è 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 certificato server.

Crea un nuovo certificato del server e ruota.

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

Prova queste cose ...

  • Verifica di disporre almeno delle autorizzazioni WRITER per il bucket e delle autorizzazioni READER per il file di esportazione. Per maggiori informazioni sulla configurazione controllo dell'accesso in Cloud Storage, consulta Creare e gestire elenchi di controllo dell'accesso
  • Assicurati che la tabella esista. Se la tabella esiste, verifica di disporre delle autorizzazioni corrette per il bucket di archiviazione.
Messaggio di errore Risoluzione dei problemi
Definizione della tabella modificata. Durante il processo di esportazione si è verificata una modifica nella 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 temp_file_limit. Il flag temp_file_limit è impostato su un valore troppo basso per l'utilizzo del database.

Aumenta le dimensioni 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 MySQL presenta contemporaneamente i seguenti avvisi, ciò è dovuto alla non sincronizzazione della chiave esterna e delle colonne delle chiavi di riferimento.

[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 nella cache del dizionario InnoDB 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 di nuovo di accedere alla tabella. Dopo l'accesso alla tabella e il suo caricamento nella cache del dizionario, InnoDB non controlla né si lamenta della mancata corrispondenza della chiave esterna fino al successivo riavvio del database

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

  1. Disabilita foreign_key_checks per la sessione client mysql e accedi alla tabella.
    
    mysql> SET SESSION FOREIGN_KEY_CHECKS=0;
                
  2. Ispeziona le tabelle padre e figlio 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. Le dimensioni e i segni dei tipi di precisione fissi come INTEGER e DECIMAL sono uguali. Per le colonne di stringhe non binarie (caratteri), il set di caratteri e le regole di confronto devono essere uguali.

  3. Correggi la mancata corrispondenza utilizzando l'istruzione ALTER TABLE. Per alcune operazioni potrebbe essere necessario eliminare prima il vincolo di chiave esterna, applicare la modifica e quindi aggiungere 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 vengono esportati in modo diverso. Il formato SQL include l'intero database e il completamento potrebbe richiedere più tempo.

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

Troppe connessioni. L'impostazione di un valore del flag max_connections troppo alto può causare questo errore. Ciò può anche essere causato dall'attivazione di un flag fuori sequenza.

Riduci il valore del flag max_connections o contatta l' assistenza clienti per richiedere la rimozione di un flag seguito da un hard drain. Questo forza il riavvio dell'istanza su un host diverso con una nuova configurazione, senza il flag o l'impostazione.

Messaggio di errore Risoluzione dei problemi
Connessione non autorizzata. Le cause possono essere molte perché l'autorizzazione avviene a molti livelli:
  • A livello di database, l'utente del database deve esistere e la password deve corrispondere
  • A livello di progetto, l'utente potrebbe non disporre delle autorizzazioni IAM corrette, incluse le autorizzazioni serviceusage.services.use o 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 queste cose ...

  • 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 dei dati da un database MySQL 5.7 e l'importazione in un database MySQL 8.0.

Se esegui il dump dei dati da un database MySQL 5.7 e l'importazione in un database MySQL 8.0, assicurati di utilizzare il programma binario mysqldump di MySQL 5.7. Se utilizzi il programma binario mysqldump di MySQL 8.0, devi aggiungere il flag --column-statistics=0.

Messaggio di errore Risoluzione dei problemi
x509: il certificato non è valido per alcun nome. Problema noto: al momento, il dialer proxy Cloud SQL non è compatibile con Go 1.15.

Fino alla risoluzione del problema, consulta questa discussione su GitHub, che include una soluzione alternativa.

Errori sconosciuti

La seguente tabella mostra alcuni casi noti in cui si può verificare un Unknown Error ed elenca rimedi specifici, ove applicabili. Tuttavia, non si tratta di un elenco esaustivo. Se non trovi la tua richiesta nella tabella, consulta il tracker dei problemi pubblico per Cloud SQL. Se non trovi il problema lì, ti consigliamo di inviare una segnalazione o esaminare le 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 database.
Backup Se noti questo errore durante i backup automatici o manuali, è probabile che il disco dell'istanza sia pieno. Se le dimensioni del file temporaneo occupano troppo spazio, puoi riavviare l'istanza per rimuovere il file e liberare spazio su disco. In caso contrario, potresti dover eseguire l'upgrade dell'istanza a una dimensione disco più grande.
Clona Questo può verificarsi quando c'è una carenza di risorse nella zona selezionata. Prova con un'altra zona della regione o attendi e riprova più tardi.
Crea istanza
  • Questo può accadere quando stai tentando di riutilizzare lo stesso nome di un'istanza eliminata di recente.
  • Può anche essere causato da problemi di connettività intermittente.
  • I log potrebbero indicare che l'API Service Networking non è abilitata per il progetto.
  • L'errore è stato rilevato anche durante il tentativo di creare più istanze in parallelo. Ad esempio, gli script Terraform rendono possibile questo tentativo.
  • Un'altra causa può essere l'esaurimento di una risorsa specifica o il superamento di 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 disponibili altri indirizzi nell'intervallo IP.
  • I nomi delle istanze non possono essere riutilizzati prima di una settimana circa dall'eliminazione.
  • In caso di problemi di connettività intermittente, l'unico rimedio è riprovare.
  • 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 da attendere il completamento di ogni operazione di creazione dell'istanza prima di passare a quella successiva.
  • Alloca nuovi intervalli.
Crea replica È probabile che i file di log contengano un errore più specifico. Esamina i log in Cloud Logging per trovare l'errore effettivo.

Se l'errore è set Service Networking service account as servicenetworking.serviceAgent role on consumer project, disattiva e riattiva Service Networking API. Questa azione crea l'account di servizio necessario per continuare la procedura.

Se l'errore è The instance creation failed due to a permission error with the CMEK key defined, controlla le impostazioni e la posizione della chiave.

Esporta Se riscontri questo problema durante il tentativo di esportare un database in un bucket Cloud Storage, il trasferimento potrebbe non riuscire a causa di un problema di larghezza di banda. L'istanza Cloud SQL potrebbe trovarsi in una regione diversa dal bucket Cloud Storage. La lettura e la scrittura di dati da un continente all'altro comporta un elevato utilizzo della rete e può causare problemi intermittenti come questo.
Failover (legacy) Se utilizzi la configurazione di failover legacy, può verificarsi quando la macchina della replica di failover non è abbastanza grande per gestire il failover. La soluzione migliore consiste nel eseguire la migrazione all'attuale configurazione di alta disponibilità. In caso contrario, devi aggiornare la replica di failover a una macchina più grande.
Failover (automatico) Un'operazione di failover automatico può generare questo messaggio di errore quando il servizio rileva che l'istanza principale è ancora reattiva. Non è necessario fare nulla in questo caso. Il failover non verrà eseguito perché non è necessario.
Importa Il file di importazione può contenere istruzioni che richiedono il ruolo di super user. Modifica il file per rimuovere eventuali istruzioni che richiedono il ruolo di super user.

Cloud SQL utilizza anche alcuni programmi binari di terze parti (ad esempio mysqld), che possono generare messaggi di errore sconosciuti. Questi errori sono interni ai programmi binari di terze parti e non rientrano nell'ambito di Cloud SQL. Tuttavia, a volte un errore più specifico può essere rilevato nei file di log di Cloud SQL più o meno contemporaneamente.

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