Diagnostica dei problemi per MySQL

Il processo del job di migrazione potrebbe generare errori durante il runtime.

  • Alcuni errori, ad esempio una password errata nel database di origine, sono recuperabili, il che significa che possono essere corretti e il job di migrazione riprende automaticamente.
  • Alcuni non sono recuperabili, ad esempio la perdita della posizione binlog, il che significa che il job di migrazione deve essere riavviato dall'inizio.

Quando si verifica un errore, lo stato del job di migrazione cambia in Failed e lo stato secondario riflette l'ultimo stato prima dell'errore.

Per risolvere un errore, vai al job di migrazione non riuscito per visualizzare l'errore e segui i passaggi descritti nel messaggio di errore.

Per visualizzare ulteriori dettagli sull'errore, vai a Cloud Monitoring utilizzando il link nel job di migrazione. I log vengono filtrati in base al job di migrazione specifico.

Nella tabella seguente sono riportati alcuni esempi di problemi e come possono essere risolti:

Per questo problema… Il problema potrebbe essere… Prova…
Le impostazioni del database di destinazione sono diverse dalla configurazione Terraform utilizzata per il provisioning del database. Questo problema è talvolta noto anche come deriva della configurazione. Quando esegui la migrazione a un database di destinazione esistente, Database Migration Service modifica alcune impostazioni del database di destinazione per eseguire il job di migrazione. Dopo aver promosso il job di migrazione, devi applicare nuovamente le impostazioni che utilizzi nella configurazione di Terraform. Consulta Deriva della configurazione Terraform.
Messaggio di errore: Error processing table {table_name}: MySQL Error 1118 (42000): Row size too large (>8126). Le tabelle che utilizzano colonne VARCHAR potrebbero avere righe che superano le dimensioni massime consentite da InnoDB (il motore di archiviazione predefinito utilizzato in MySQL). Puoi sbloccare il job di migrazione convertendo le colonne in BLOB o TEXT oppure impostando temporaneamente il flag innodb_strict_mode su off. Consulta Errore 1118: dimensione della riga troppo grande.
Il job di migrazione non è riuscito durante la fase di dump iniziale con il seguente messaggio di errore:
ERROR 1064 (42000) at {line_number}: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near {reserved_word} at {line_number}.
Questo problema si verifica durante la migrazione tra versioni di MySQL. Le entità nella versione MySQL di origine potrebbero utilizzare parole non consentite nella versione MySQL di cui vuoi eseguire la migrazione.

Ad esempio, in MySQL 5.7 puoi utilizzare la parola function nei nomi delle colonne. Tuttavia, in MySQL 8.0, function è una parola riservata, quindi il database di destinazione non può analizzare le tue origini.

Rinomina gli oggetti del database di origine a cui viene fatto riferimento nel messaggio di errore o racchiudili tra apici inversi (``) per eseguire l'escape della sintassi. Al termine, riprova a eseguire il job di migrazione.
Messaggio di errore: ERROR 1109 (42S02): Unknown table in <schema name here> Database Migration Service non esegue la migrazione degli schemi di sistema mysql, performance_schema, information_schema, ndbinfo o sys.

Il job di migrazione potrebbe non riuscire se il database di origine contiene oggetti che fanno riferimento a tabelle di uno di questi schemi.

Controlla nel database di origine se sono presenti oggetti che fanno riferimento a tabelle contenute in uno degli schemi di sistema di cui non è stata eseguita la migrazione. Consulta ERROR 1109 (42S02): Unknown table in <schema name here>.
Messaggio di errore: Unknown table 'COLUMN_STATISTICS' in information_schema (1109) Pertinente solo per gli scenari di dump manuale del database con mysqldump.

I database MySQL nelle versioni precedenti alla 8 non hanno la tabella COLUMN_STATISTICS. L'utilità mysqldump nelle versioni 8 e successive tenta di esportare questa tabella per impostazione predefinita. L'esportazione non riesce perché la colonna non esiste.

Utilizza il flag --column-statistics=0 quando utilizzi mysqldump.
Messaggio di errore: Specified key was too long; max key length is 767 bytes. Nell'istanza del database di origine potrebbe essere impostata la variabile innodb_large_prefix. Imposta il flag innodb_large_prefix su ON quando crei l'istanza di destinazione oppure aggiorna l'istanza di destinazione esistente con il flag.
Messaggio di errore: Table definition has changed. Sono state apportate modifiche al DDL (Data Definition Language) durante il processo di dump. Evita modifiche DDL durante il processo di dump.
Messaggio di errore: While 'Loading data': Dump timeout. Il timeout potrebbe essere causato da un problema di connettività. Verifica la connessione di rete con il database di origine. Per indicazioni di esempio, consulta Debug della connettività.
Se sono state apportate modifiche al Data Definition Language (DDL) durante il processo di dump, Database Migration Service potrebbe bloccarsi a causa di un blocco dei metadati. Esamina il database di origine per verificare la presenza di processi bloccati nello stato Waiting for table metadata lock. Se trovi processi con questo stato, ti consigliamo di riavviare il job di migrazione. Non eseguire modifiche DDL durante la fase di dump completo dopo il riavvio. Puoi utilizzare uno script di esempio per verificare che le operazioni DDL siano interrotte.
MySQL Error 2013: (HY000): Lost connection to MySQL server during query Il timeout potrebbe essere causato da un problema di connettività. Verifica la connessione di rete con il database di origine. Per indicazioni di esempio, vedi Debug della connettività.
Se durante il processo di dump sono state apportate modifiche al data definition language (DDL), Database Migration Service potrebbe essere bloccato in un blocco dei metadati. Esamina il database di origine per verificare la presenza di processi bloccati nello stato Waiting for table metadata lock. Se trovi processi con questo stato, ti consigliamo di riavviare il job di migrazione. Non apportare modifiche DDL durante la fase di dump completo dopo il riavvio. Puoi utilizzare uno script di esempio per verificare che le operazioni DDL siano interrotte.
Messaggio di errore: Timeout waiting for no write traffic on source: context deadline exceeded. Un problema di connettività potrebbe causare il timeout. Verifica la connessione di rete con il database di origine. Per indicazioni di esempio, consulta Debug della connettività.
Se durante il processo di dump sono state apportate modifiche al data definition language (DDL), Database Migration Service potrebbe essere bloccato in un blocco dei metadati. Esamina il database di origine per verificare la presenza di processi bloccati nello stato Waiting for table metadata lock. Se trovi processi con questo stato, ti consigliamo di riavviare il job di migrazione. Non apportare modifiche DDL durante la fase di dump completo dopo il riavvio. Puoi utilizzare uno script di esempio per verificare che le operazioni DDL siano interrotte.
Messaggio di errore: Access denied; you need (at least one of) the SUPER privilege(s) for this operation. Nel database di origine potrebbe essere presente un evento, una vista, una funzione o una procedura che utilizza un superutente@localhost (ad esempio root@localhost). Questa opzione non è supportata da Cloud SQL. Scopri maggiori informazioni sull'utilizzo di DEFINER in Cloud SQL.
Messaggio di errore: Definer user 'x' does not exist. Please create the user on the replica. L'utente non esiste nella replica. Scopri maggiori informazioni sull'utilizzo di DEFINER in Cloud SQL.
Messaggio di errore: ERROR 1045 (28000) at line {line_number}: Access denied for user 'cloudsqlimport'@'localhost. Nel database di origine è presente un DEFINER che non esiste nella replica. Scopri maggiori informazioni sull'utilizzo di DEFINER in Cloud SQL.
Messaggio di errore: Lost connection to MySQL server during query when dumping table. Il database di origine potrebbe essere diventato irraggiungibile o il dump conteneva pacchetti troppo grandi. Prova questi suggerimenti.
Messaggio di errore: Got packet bigger than 'max_allowed_packet' bytes when dumping table. Il pacchetto era più grande di quanto consentito dalle impostazioni. Utilizza il dump manuale con l'opzione max_allowed_packet.
La migrazione iniziale dei dati è riuscita, ma non viene replicato alcun dato. Potrebbero esserci flag di replica in conflitto. Controlla queste impostazioni dei flag.
La migrazione iniziale dei dati è riuscita, ma la replica dei dati ha smesso di funzionare dopo un po' di tempo. Le cause potrebbero essere molteplici. Prova questi suggerimenti.
Messaggio di errore: mysqld check failed: data disk is full. Il disco dati dell'istanza di destinazione è pieno. Aumenta le dimensioni del disco dell'istanza di destinazione. Puoi aumentare manualmente le dimensioni del disco o attivare l'aumento automatico dello spazio di archiviazione.
Errore di connessione all'istanza del database di origine. Si è verificato un problema di connettività tra l'istanza del database di origine e l'istanza di destinazione. Segui i passaggi descritti nell'articolo Eseguire il debug della connettività.
La migrazione da un database gestito (Amazon RDS/Aurora) non viene avviata. La migrazione da un database di origine gestito senza privilegi SUPERUSER richiede un breve tempo di inattività all'inizio della migrazione. Segui i passaggi descritti in questo articolo.
Il binlog non è configurato correttamente nel database di origine. Le definizioni del binlog non sono corrette. Per i job di migrazione MySQL continui, assicurati di seguire le definizioni binlog richieste.
Impossibile trovare il file di dump. DMS non riesce a trovare il file di dump fornito. Questo può accadere se il job di migrazione non riesce a trovare il file di dump nella posizione specificata.
  1. Controlla il percorso del dump per assicurarti che sia presente un file appropriato o modifica il percorso.
  2. Se modifichi il percorso, utilizza una richiesta PATCH per assicurarti che il job lo utilizzi.
  3. Riavvia il job di migrazione.
Impossibile riprendere la replica perché la posizione del binlog è stata persa. La posizione binlog è andata persa e non è stato possibile riprendere il job di migrazione. Questo errore può verificarsi quando il processo di replica viene messo in pausa per un lungo periodo di tempo, il che causa la perdita della posizione binlog. I job di migrazione non devono essere messi in pausa per periodi di tempo che si avvicinano al periodo di conservazione dei binlog. Riavvia il job di migrazione.
Quando esegui la migrazione a un'istanza di destinazione esistente, ricevi il seguente messaggio di errore: The destination instance contains existing data or user defined entities (for example databases, tables, or functions). You can only migrate to empty instances. Clear your destination instance and retry the migration job. L'istanza Cloud SQL di destinazione contiene dati aggiuntivi. Puoi eseguire la migrazione solo a istanze esistenti vuote. Consulta le limitazioni note. Promuovi l'istanza di destinazione per renderla un'istanza di lettura/scrittura, rimuovi i dati aggiuntivi e riprova il job di migrazione. Consulta Cancella i dati aggiuntivi dall'istanza di destinazione esistente.
Errore durante l'esecuzione del job di migrazione a causa di versioni dei database di origine e di destinazione incompatibili. La versione del database di origine fornita non è compatibile con la versione del database di destinazione. Assicurati che la versione del database di destinazione sia la stessa o una versione principale successiva rispetto alla versione di destinazione di origine, quindi crea un nuovo job di migrazione.
Messaggio di errore: Unable to connect to source database server. Database Migration Service non riesce a stabilire una connessione al server del database di origine. Assicurati che le istanze del database di origine e di destinazione possano comunicare tra loro e di aver completato tutti i prerequisiti richiesti visualizzati quando hai definito le impostazioni per il job di migrazione.
Messaggio di errore: Timeout waiting for no write traffic on source. La migrazione da un database di origine gestito senza privilegi SUPERUSER comporta un breve periodo di inattività all'inizio della migrazione. Segui i passaggi descritti in Migrazione da RDS MySQL senza privilegi SUPERUSER.
Messaggio di errore: ERROR 1146 (42S02) at line {line_number}: Table '{table_name}' doesn't exist. Potrebbe esserci un'incoerenza tra il valore del flag lower_case_table_names per il database di origine e il valore del flag per l'istanza Cloud SQL di destinazione. Imposta il valore del flag per l'istanza Cloud SQL in modo che corrisponda al valore del flag per il database di origine.
Messaggio di errore: ERROR 1109 (42S02) at line {line_number}: Unknown table '{table}' in {database}. Alcuni oggetti del database di origine, come viste, funzioni, stored procedure o trigger, fanno riferimento a una tabella che non esiste più nel database. Controlla se questi oggetti esistono. In questo caso, elimina gli oggetti dal database di origine o aggiungi la tabella a cui fanno riferimento gli oggetti al database di origine.
Messaggio di errore: ERROR 1045: Access denied for user '{user_name}'@'{replica_IP}' (using password: YES)". Check if MySQL replication user and password are correct. Not attempting further retries. Hai fornito una password errata per l'istanza di origine. In alternativa, l'istanza di origine forza una connessione SSL, ma il job di migrazione non è configurato per l'utilizzo delle certificazioni SSL.

Verifica se nome utente, password e impostazioni SSL sono corretti per l'istanza di origine utilizzando il client mysql.

Se l'istanza di origine è Cloud SQL, consulta Richiesta di SSL/TLS per verificare se SSL/TLS è richiesto per le connessioni TCP.

Il ritardo di replica è costantemente elevato.

Il carico di scrittura è troppo elevato per essere gestito dalla replica. Il ritardo di replica si verifica quando il thread Cloud SQL per MySQL su una replica non riesce a stare al passo con il thread di I/O. Alcuni tipi di query o workload possono causare un ritardo di replica elevato temporaneo o permanente per un determinato schema. Alcune cause tipiche del ritardo della replica sono:

  • Le query lente vengono eseguite sulla replica. Trovali e correggili.
  • Ti consigliamo vivamente di assegnare a tutte le tabelle una chiave primaria univoca. Ogni aggiornamento di una tabella che non ha questa chiave causa scansioni complete della tabella sulla replica, con conseguenti ritardi nella replica.
  • Query come DELETE ... WHERE field < 50000000 causano un ritardo della replica con la replica basata su righe perché un numero elevato di aggiornamenti si accumula nella replica.

Alcune possibili soluzioni includono:

Messaggio di errore: 'Character set '#255' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file' on query. Il database di origine potrebbe utilizzare set di caratteri o regole di confronto non supportati dalla replica Cloud SQL selezionata. Un esempio è AWS Aurora versione 2.x, compatibile con MySQL 5.7. Tuttavia, questa versione supporta le regole di confronto utf8mb4_0900_as_ci, che non sono supportate in Cloud SQL per MySQL 5.7.
  • Se la migrazione non riesce durante la fase di dump completo, controlla la definizione della tabella di origine se vengono utilizzati set di caratteri o regole di confronto non supportati. Se possibile, esegui l'aggiornamento a set di caratteri o regole di confronto supportati.
  • Se la migrazione non riesce durante la fase CDC, controlla lo stato della replica, trova il binlog che causa l'errore della migrazione ed esamina il database e l'applicazione di origine per individuare le istruzioni SQL che utilizzano i set di caratteri o le regole di confronto. Se possibile, esegui l'aggiornamento ai set di caratteri o alle regole di confronto supportati.

Errore 1108: dimensioni della riga troppo grandi

Le tabelle con colonne che memorizzano stringhe di lunghezza variabile possono avere righe che superano la dimensione massima predefinita delle righe InnoDB.

Cose da provare

Modifica lo schema della tabella di origine

Questo problema può ripresentarsi ogni volta che esegui istruzioni INSERT nelle tabelle che superano il limite massimo di righe. Per evitare problemi futuri, è meglio modificare le tabelle prima di riprovare la migrazione:

  • Modifica la tabella ROW_FORMAT in DYNAMIC o COMPRESSED eseguendo la seguente query:
    ALTER TABLE TABLE_NAME ROW_FORMAT=FORMAT_NAME;
      
    Dove:
    • TABLE_NAME è il nome della tabella le cui righe superano il limite massimo di dimensioni delle righe
    • FORMAT_NAME è DYNAMIC o COMPRESSED
    Ad esempio:
    ALTER TABLE mytable ROW_FORMAT=DYNAMIC;
      
  • Converti i dati delle righe in BLOB o TEXT. Un modo per eseguire questa operazione è utilizzare la funzione CONVERT().
Disattiva la modalità StrictMode di InnoDB

Se non è possibile modificare lo schema della tabella di origine, puoi disattivare temporaneamente la convalida di InnoDB per completare il job di migrazione. Tieni presente che il problema può ripresentarsi durante i futuri tentativi di scrittura nel database, quindi è meglio modificare lo schema della tabella quando possibile.

Per disattivare temporaneamente la convalida InnoDB per completare il job di migrazione, segui questi passaggi:

If…Poi…
Se esegui la migrazione a una nuova istanza di destinazione
  1. Ricrea il job di migrazione.
  2. Al termine del passaggio Definisci una destinazione, fai clic su Mostra configurazioni facoltative.
  3. Nella sezione Flag, seleziona il flag innodb_strict_mode e impostalo su Off.
  4. Una volta completata la migrazione, imposta il flag innodb_strict_mode su On. Consulta Configura i flag di database nella documentazione di Cloud SQL per MySQL.
Se esegui la migrazione a un'istanza di destinazione esistente
  1. In Cloud SQL, vai all'istanza di destinazione e imposta il flag innodb_strict_mode su Off. Consulta Configurare i flag di database nella documentazione di Cloud SQL per MySQL.
  2. Ricrea il job di migrazione.
  3. Una volta completata la migrazione, imposta il flag innodb_strict_mode su On. Consulta Configura i flag di database nella documentazione di Cloud SQL per MySQL.

Cancella i dati aggiuntivi dall'istanza di destinazione esistente

Quando esegui la migrazione a un'istanza di destinazione esistente, ricevi il seguente messaggio di errore: The destination instance contains existing data or user defined entities (for example databases, tables, or functions). You can only migrate to empty instances. Clear your destination instance and retry the migration job.

Questo problema può verificarsi se l'istanza di destinazione contiene dati aggiuntivi. Puoi eseguire la migrazione solo a istanze esistenti vuote. Vedi Limitazioni note.

Da provare

Cancella i dati aggiuntivi dall'istanza di destinazione e avvia nuovamente il job di migrazione seguendo questi passaggi:

  1. Interrompi il job di migrazione.
  2. A questo punto, l'istanza Cloud SQL di destinazione è in modalità read-only. Promuovi l'istanza di destinazione per ottenere l'accesso in scrittura.
  3. Connettiti all'istanza Cloud SQL di destinazione.
  4. Rimuovi i dati aggiuntivi dai database dell'istanza di destinazione. La destinazione può contenere solo dati di configurazione del sistema. I database di destinazione non possono contenere dati utente (ad esempio tabelle). Esistono diverse istruzioni SQL che puoi eseguire sui tuoi database per trovare dati non di sistema, ad esempio:
    SELECT schema_name FROM information_schema.SCHEMATA
    WHERE schema_name NOT IN ('information_schema', 'sys', 'performance_schema', 'mysql');
      
  5. Avvia il job di migrazione.

Deriva della configurazione Terraform

Quando esegui la migrazione a un database di destinazione esistente, Database Migration Service modifica alcune impostazioni del database di destinazione per eseguire il job di migrazione. Per i database di cui è stato eseguito il provisioning con Terraform, questa interazione potrebbe causare una deviazione della configurazione in cui la configurazione effettiva del database di destinazione è diversa da quella impostata nei file Terraform.

Cose da provare

Non tentare di riapplicare la configurazione Terraform durante l'esecuzione del job di migrazione. Puoi modificare in sicurezza la configurazione necessaria dopo la promozione del database di destinazione. Database Migration Service esegue le seguenti modifiche all'istanza Cloud SQL di destinazione: Se la configurazione Terraform contiene impostazioni per una di queste funzionalità, puoi aspettarti che si verifichi una deviazione della configurazione. Se devi correggere la configurazione del database di destinazione, attendi il completamento del job di migrazione e la promozione del database di destinazione. Quindi, segui questi passaggi: 1. Esegui il comando "terraform plan" per visualizzare l'anteprima delle modifiche. 1. Esegui il comando `terraform apply` per modificare nuovamente le impostazioni del database di destinazione.

ERRORE 1109 (42S02): Unknown table in <schema name here>

I job di migrazione non riescono e viene visualizzato il seguente messaggio: ERROR 1109 (42S02): Unknown table in <schema name here> , ad esempio: ERROR 1109 (42S02) at line X: Unknown table 'GLOBAL_STATUS' in information_schema.

Il problema potrebbe essere

Database Migration Service non esegue la migrazione degli schemi di sistema mysql, performance_schema, information_schema, ndbinfo o sys (consulta Limitazioni note). Il job di migrazione potrebbe non riuscire se il database di origine contiene oggetti che fanno riferimento a tabelle di uno di questi schemi.

Da provare

Controlla il database di origine per individuare oggetti che fanno riferimento a tabelle degli schemi di sistema. Nel database di origine, esegui le seguenti query:
# Query to check routines or functions definitions.
SELECT ROUTINE_SCHEMA, ROUTINE_NAME FROM information_schema.routines
WHERE ROUTINE_SCHEMA NOT IN ('information_schema', 'mysql', 'ndbinfo', 'performance_schema', 'sys')
AND ROUTINE_DEFINITION like '%OBJECT_NAME_REPORTED_IN_THE_ERROR_MESSAGE%'

# Query to check view definitions.
SELECT TABLE_SCHEMA, TABLE_NAME FROM information_schema.views
WHERE TABLE_SCHEMA NOT IN ('information_schema', 'mysql', 'ndbinfo', 'performance_schema', 'sys')
AND view_definition like '%OBJECT_NAME_REPORTED_IN_THE_ERROR_MESSAGE%'

# Query to check trigger definitions.
SELECT TRIGGER_SCHEMA, TRIGGER_NAME FROM information_schema.TRIGGERS
WHERE TRIGGER_SCHEMA NOT IN ('information_schema', 'mysql', 'ndbinfo', 'performance_schema', 'sys')
AND event_object_table = 'OBJECT_NAME_REPORTED_IN_THE_ERROR_MESSAGE'

# Query to check constraint definitions.
SELECT TABLE_SCHEMA, TABLE_NAME
FROM information_schema.KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA NOT IN ('information_schema', 'mysql', 'ndbinfo', 'performance_schema', 'sys')
AND REFERENCED_TABLE_NAME = 'OBJECT_NAME_REPORTED_IN_THE_ERROR_MESSAGE'
Se queste query restituiscono risultati, valuta la possibilità di eliminare gli oggetti di codice pertinenti ed esegui di nuovo la migrazione.

Tabella "COLUMN_STATISTICS" sconosciuta in information_schema

Quando esegui l'utilità mysqldump versione 8 o successive per esportare un database MySQL versione precedente alla 8, viene visualizzato questo errore: Unknown table 'COLUMN_STATISTICS' in information_schema (1109).

Il problema potrebbe essere

I database MySQL nelle versioni precedenti alla 8 non hanno la tabella COLUMN_STATISTICS. L'utilità mysqldump nelle versioni 8 e successive tenta di esportare questa tabella per impostazione predefinita. L'esportazione non riesce perché la colonna non esiste.

Da provare

Aggiungi il flag --column-statistics=0 al comando mysqldump per rimuovere la tabella COLUMN_STATISTICS dall'esportazione. Per saperne di più, consulta Esportazione di un database MySQL utilizzando mysqldump.


La chiave specificata è troppo lunga; la lunghezza massima della chiave è 767 byte

Visualizzi l'errore Specified key was too long; max key length is 767 bytes.

Il problema potrebbe essere

Nel database di origine potrebbe essere impostata la variabile innodb_large_prefix. In questo modo sono consentiti prefissi delle chiavi di indice più lunghi di 767 byte. Il valore predefinito è OFF per MySQL 5.6.

Cose da provare

Imposta il flag innodb_large_prefix su ON durante la creazione del database di destinazione o aggiorna il database di destinazione esistente con il flag.


La definizione della tabella è cambiata

Viene visualizzato l'errore Table definition has changed.

Il problema potrebbe essere

Sono state apportate modifiche DDL durante la procedura di dump.

Da provare

Non modificare le tabelle né eseguire altre modifiche DDL durante il processo di dump.Puoi utilizzare uno script per verificare che le operazioni DDL siano interrotte.


Accesso negato; per questa operazione è necessario (almeno uno dei) privilegi SUPER

Visualizzi l'errore Access denied; you need (at least one of) the SUPER privilege(s) for this operation.

Il problema potrebbe essere

Potrebbe esserci un evento, una visualizzazione, una funzione o una procedura nel database di origine che utilizza super user@localhost (ad esempio root@localhost). Questa operazione non è supportata da Cloud SQL.

Cose da provare

Consulta questo documento sulla migrazione di un database con clausole DEFINER.


Messaggio di errore: Definer user 'x' does not exist. Please create the user on the replica.

Visualizzi l'errore Definer user 'x' does not exist. Please create the user on the replica.

Il problema potrebbe essere

La causa principale è che un utente nel database di origine con la clausola DEFINER non esiste nel database di replica.

Da provare

Consulta questo documento sulla migrazione di un database con clausole DEFINER. Potresti dover creare l'utente nel database di replica.


Messaggio di errore: ERROR 1045 (28000) at line {line_number}: Access denied for user 'cloudsqlimport'@'localhost

Visualizzi l'errore ERROR 1045 (28000) at line {line_number}: Access denied for user 'cloudsqlimport'@'localhost.

Il problema potrebbe essere

La causa principale è che un utente nel database di origine con la clausola DEFINER non esiste nel database di replica e che l'utente è oggetto di riferimenti incrociati nelle definizioni degli oggetti nel database di origine.

Da provare

Consulta questo documento sulla migrazione di un database con clausole DEFINER. Potresti dover creare uno o più utenti nel database di replica.


Connessione al server MySQL persa durante la query durante il dump della tabella

Viene visualizzato l'errore Lost connection to MySQL server during query when dumping table.

Il problema potrebbe essere

  • L'istanza del database di origine potrebbe essere diventata non raggiungibile dall'istanza di destinazione.
  • Il database di origine potrebbe contenere tabelle con BLOB di grandi dimensioni o stringhe lunghe che richiedono l'impostazione di max_allowed_packet su un numero maggiore nel database di origine.

Cose da provare

  • Verifica che l'istanza del database di origine sia attiva e raggiungibile.
  • Configura il flag max-allowed-packet nel job di migrazione, quindi riavvia il job di migrazione. In alternativa, genera un dump manuale con l'opzione max_allowed_packet per eseguire il dump dei dati ed eseguire la migrazione con il file di dump.
  • L'aumento di max_allowed_packet richiederà molto probabilmente la modifica delle impostazioni net_read_timeout e net_write_timeout nel database di origine (in genere deve essere aumentato fino a quando l'errore di connessione non si interrompe).

Ricevuto pacchetto più grande di "max_allowed_packet" byte durante il dump della tabella

Viene visualizzato l'errore Got packet bigger than 'max_allowed_packet' bytes when dumping table.

Il problema potrebbe essere

Il pacchetto era più grande di quanto consentito dalle impostazioni.

Da provare

Crea un job di migrazione utilizzando un dump manuale con l'opzione max_allowed_packet per eseguire il dump dei dati ed eseguire la migrazione con il file di dump.


Nessun dato viene replicato

La migrazione iniziale dei dati è stata completata, ma non vengono replicati dati.

Il problema potrebbe essere

Una possibile causa principale potrebbe essere che il database di origine ha flag di replica che impediscono la replica di alcune o tutte le modifiche al database.

Cose da provare

Assicurati che i flag di replica come binlog-do-db, binlog-ignore-db, replicate-do-db o replicate-ignore-db non siano impostati in modo in conflitto.
Esegui il comando show master status sul database di origine per visualizzare le impostazioni attuali.


La migrazione iniziale dei dati è riuscita, ma la replica dei dati ha smesso di funzionare dopo un po' di tempo

La migrazione iniziale dei dati è riuscita, ma la replica dei dati ha smesso di funzionare dopo un po' di tempo.

Il problema potrebbe essere

Le cause principali di questo problema possono essere molteplici.

Da provare

  • Controlla le metriche di replica per l'istanza di destinazione in Cloud Monitoring.
  • Gli errori del thread I/O MySQL o del thread SQL sono disponibili in Cloud Logging nei file di log mysql.err.
  • L'errore può essere rilevato anche durante la connessione all'istanza di destinazione. Esegui il comando SHOW REPLICA STATUS e controlla questi campi nell'output:
    • Replica_IO_Running
    • Replica_SQL_Running
    • Last_IO_Error
    • Last_SQL_Error

    Nota:SHOW REPLICA STATUS è un alias introdotto in MySQL 8.0.22. Per le versioni precedenti (MySQL 5.7, MySQL 8.0), utilizza il vecchio alias del comando status. Per saperne di più, consulta Status statement nella documentazione di MySQL.

    Se hai ricevuto l'errore fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file' in Last_IO_Error, il problema potrebbe essere dovuto a un'impostazione di conservazione del binlog insufficiente nell'istanza di origine.

    Se hai ricevuto l'errore error connecting to master 'USER_NAME@SOURCE_HOST:SOURCE_PORT' - retry-time: RETRY_TIME retries: RETRIES, il problema potrebbe essere dovuto al fatto che l'istanza di destinazione non è riuscita a riconnettersi all'origine a causa di un problema di connettività o autenticazione.


Controllo mysqld non riuscito: il disco dati è pieno

Viene visualizzato l'errore mysqld check failed: data disk is full.

Il problema potrebbe essere

Il disco di dati dell'istanza di destinazione è probabilmente pieno.

Da provare

Aumenta le dimensioni del disco dell'istanza di destinazione.


Connessione al database di origine non riuscita

Connessione al database di origine non riuscita.

Il problema potrebbe essere

Si è verificato un problema di connettività tra l'istanza del database di origine e l'istanza di destinazione.

Da provare

Segui i passaggi descritti nell'articolo sul debug della connettività.


La migrazione da un database gestito (Amazon RDS/Aurora) non si avvia

Il job di migrazione non si avvia.

Il problema potrebbe essere

La migrazione da un database di origine gestito senza privilegi SUPERUSER richiede un breve tempo di inattività all'inizio della migrazione.

Da provare


Binlog è configurato in modo errato nel database di origine

Viene visualizzato un errore che indica un problema con i log binari.

Il problema potrebbe essere

Questo può accadere per i job di migrazione MySQL continui se la configurazione del binlog non è corretta nel database di origine.

Cose da provare

Assicurati di seguire i passaggi descritti qui.


Errore durante la lettura del file di dump fornito

Viene visualizzato un errore che indica un problema con il file di dump.

Il problema potrebbe essere

DMS non riesce a trovare il file di dump fornito.

Cose da provare

  1. Controlla il percorso del dump per assicurarti che sia presente un file appropriato o modifica il percorso
  2. Se modifichi il percorso, utilizza una richiesta PATCH per assicurarti che il job lo utilizzi.
  3. Riavvia il job di migrazione.

Impossibile riprendere la replica perché la posizione del binlog è andata persa

La posizione del binlog è andata persa.

Il problema potrebbe essere

Questo errore può verificarsi quando il processo di replica viene messo in pausa per un lungo periodo di tempo, il che causa la perdita della posizione del binlog. I job di migrazione non devono essere messi in pausa per periodi di tempo che si avvicinano al periodo di conservazione dei binlog.

Da provare

Riavvia il job di migrazione.


Errore durante l'esecuzione del job di migrazione a causa di versioni del database di origine e di destinazione incompatibili

La combinazione delle versioni del database di origine e di destinazione non è supportata.

Il problema potrebbe essere

La versione del database di origine fornita non è compatibile con la versione del database di destinazione.

Da provare

Assicurati che la versione del database di destinazione sia la stessa o una versione principale successiva rispetto alla versione della destinazione di origine, quindi crea un nuovo job di migrazione.


Impossibile connettersi al server del database di origine

Viene visualizzato l'errore Unable to connect to source database server.

Il problema potrebbe essere

Database Migration Service non riesce a stabilire una connessione al server del database di origine.

Da provare

Verifica che le istanze di database di origine e di destinazione possano comunicare tra loro. Poi, assicurati di aver completato tutti i prerequisiti obbligatori visualizzati quando hai definito le impostazioni per il job di migrazione.


L'utilizzo del disco dell'istanza Cloud SQL di destinazione scende a zero

L'utilizzo del disco scende improvvisamente a zero durante la migrazione.

Il problema potrebbe essere

Potrebbe verificarsi un errore durante l'importazione dei dati iniziali. In questo caso, il processo di migrazione tenta di eseguire un altro caricamento dei dati. Questo processo cancella prima i dati esistenti nell'istanza di destinazione (per questo motivo l'utilizzo del disco scende a zero) e poi tenta di ricaricare i dati.

Da provare

Vai a Esplora log e seleziona l'istanza di destinazione dall'elenco delle risorse. Cerca un messaggio di log simile: DUMP_STAGE(RETRY): Attempt .../...: import failed: error..."; Clearing database and trying again." Trova il messaggio dopo il testo import failed: e prova a risolvere il problema sottostante.