Puoi eseguire l'utilità mysqldump direttamente sul database MySQL, utilizzando le opzioni che ti servono. Tuttavia, se esegui l'esportazione 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 tuo database contiene campi binari, devi utilizzare questo flag per assicurarti che vengano importati correttamente.--single-transactionAvvia una transazione prima dell'esecuzione. Anziché bloccare l'intero database, consente a mysqldump di leggere il database nello stato attuale, creando un dump dei dati coerente.--routinesPer includere stored procedure e funzioni.Quando utilizzi
mysqldumpversione 8 o successive per 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ù, vedi 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 è un servizio di database relazionale (RDS) per MySQL:
- La proprietà
master-datanon è supportata. - Se il server del database di origine supporta GTID, utilizza la proprietà
--set-gtid-purged=on; in caso contrario, non utilizzarla. - 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 binlog 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 per il 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 .gz (ad esempio, source-database.sql.gz). |