Puoi eseguire l'utilità mysqldump direttamente sul database MySQL, utilizzando le opzioni che ti servono. Tuttavia, se stai esportando per importare i dati in un database Cloud SQL, utilizza l'utilità mysqldump con i seguenti flag:
--databasesSpecifica un elenco esplicito di database da esportare. Questo elenco non deve contenere i database di sistema (sys,mysql,performance_schemaeinformation_schema).--hex-blobSe il database contiene campi binari, devi utilizzare questo flag per assicurarti che i campi binari vengano importati correttamente.--single-transactionAvvia una transazione prima dell'esecuzione. Anziché bloccare l'intero database, questo consente a mysqldump di leggere il database nello stato attuale, creando un dump di dati coerente.--routinesPer includere stored procedure e funzioni.Quando utilizzi la versione 8 o successive di
mysqldumpper esportare database MySQL di versioni precedenti alla 8:--column-statistics=0Questo flag rimuove la tabella COLUMN_STATISTICS dall'esportazione del database per evitare l'errore
Unknown table 'COLUMN_STATISTICS' in information_schema (1109). Per saperne di più, consulta Diagnosticare i problemi.
Ti consigliamo inoltre di utilizzare i seguenti flag:
--no-autocommit--default-character-set=utf8mb4--master-data
Da una macchina con connettività di rete al server MySQL, esegui il seguente comando:
mysqldump \
-h [SOURCE_ADDR] -P [SOURCE_PORT] -u [USERNAME] -p \
--databases [DBS] \
--hex-blob \
--no-autocommit \
--default-character-set=utf8mb4 \
--master-data=1 \
--single-transaction \
--routines \
| gzip \
| gcloud storage cp - gs://[BUCKET_NAME]/[DUMP_FILENAME].gz
Se l'origine della migrazione è Relational Database Service (RDS) per MySQL:
- La proprietà
master-datanon è supportata. - Se il server di database di origine supporta GTID, utilizza la proprietà
--set-gtid-purged=on; in caso contrario, non utilizzare questa proprietà. - Se utilizzi un dump manuale per eseguire la migrazione dei dati, esegui la migrazione con GTID abilitato.
Questo comando potrebbe essere simile al seguente esempio:
mysqldump \
-h [SOURCE_ADDR] -P [SOURCE_PORT] -u [USERNAME] -p \
--databases [DBS] \
--hex-blob \
--no-autocommit \
--default-character-set=utf8mb4 \
--set-gtid-purged=on \
--single-transaction \
--routines \
| gzip \
| gcloud storage cp - gs://[BUCKET_NAME]/[DUMP_FILENAME].gz
Inoltre, devi configurare le istanze RDS in modo che conservino i log binari più a lungo. Questo comando potrebbe essere simile al seguente esempio:
# Sets the retention period to one week.
call mysql.rds_set_configuration('binlog retention hours', 168);
Sostituisci [PROPERTIES_IN_BRACKETS] con i seguenti valori:
| Proprietà | Valore |
| [SOURCE_ADDR] | L'indirizzo IPv4 o il nome host del server di database di origine. |
| [SOURCE_PORT] | La porta del server di database di origine. |
| [USERNAME] | L'account utente MySQL. |
| [DBS] | Un elenco separato da spazi dei database sul server di database di origine da includere nel dump. Utilizza il comando MySQL SHOW DATABASES per elencare i database. |
| [BUCKET_NAME] | Il bucket in Cloud Storage creato dall'utente e utilizzato per archiviare il file di dump (ad esempio, replica-bucket). |
| [DUMP_FILENAME] | Il nome file del dump, che termina con l'estensione del file .gz (ad esempio, source-database.sql.gz). |
Passaggi successivi
Per una procedura dettagliata completa della migrazione, consulta Inizia a utilizzare le migrazioni di Cloud SQL per MySQL.