Sie können das Dienstprogramm mysqldump direkt für Ihre MySQL-Datenbank ausführen und dabei alle erforderlichen Optionen verwenden. Wenn Sie die Daten jedoch exportieren, um sie in eine Cloud SQL-Datenbank zu importieren, verwenden Sie das Dienstprogramm mysqldump mit den folgenden Flags:
--databasesGeben Sie eine explizite Liste der zu exportierenden Datenbanken an. Diese Liste darf die Systemdatenbanken (sys,mysql,performance_schemaundinformation_schema) nicht enthalten.--hex-blobWenn Ihre Datenbank Binärfelder enthält, müssen Sie dieses Flag verwenden, damit die Binärfelder korrekt importiert werden.--single-transactionStartet eine Transaktion vor der Ausführung. Anstatt die gesamte Datenbank zu sperren, kann mysqldump die Datenbank so im aktuellen Zustand lesen, was zu einem konsistenten Daten-Dump führt.--routinesZum Einbeziehen gespeicherter Verfahren und Funktionen.Wenn Sie
mysqldumpVersion 8 oder höher verwenden, um MySQL-Datenbanken mit Versionen vor 8 zu exportieren:--column-statistics=0Mit diesem Flag wird die Tabelle COLUMN_STATISTICS aus dem Datenbankexport entfernt, um den Fehler
Unknown table 'COLUMN_STATISTICS' in information_schema (1109)zu vermeiden. Weitere Informationen finden Sie unter Probleme diagnostizieren.
Außerdem wird empfohlen, die folgenden Flags zu verwenden:
--no-autocommit--default-character-set=utf8mb4--master-data
Führen Sie den folgenden Befehl auf einem Rechner aus, der über eine Netzwerkverbindung zu Ihrem MySQL-Server verfügt:
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
Wenn die Quelle der Migration ein Relational Database Service (RDS) für MySQL ist:
- Das Attribut
master-datawird nicht unterstützt. - Wenn Ihr Quelldatenbankserver GTID unterstützt, verwenden Sie das Attribut
--set-gtid-purged=on. Andernfalls verwenden Sie dieses Attribut nicht. - Wenn Sie einen manuellen Dump verwenden, um Ihre Daten zu migrieren, führen Sie die Migration mit aktivierter GTID aus.
Der Befehl kann wie im folgenden Beispiel aussehen:
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
Außerdem sollten Sie RDS-Instanzen so konfigurieren, dass binäre Logs länger aufbewahrt werden. Der Befehl kann wie im folgenden Beispiel aussehen:
# Sets the retention period to one week.
call mysql.rds_set_configuration('binlog retention hours', 168);
Ersetzen Sie [PROPERTIES_IN_BRACKETS] durch die folgenden Werte:
| Attribut | Wert |
| [SOURCE_ADDR] | Die IPv4-Adresse oder der Hostname für den Quelldatenbankserver. |
| [SOURCE_PORT] | Der Port für den Quelldatenbankserver. |
| [USERNAME] | Das MySQL-Nutzerkonto. |
| [DBS] | Eine durch Leerzeichen getrennte Liste der Datenbanken auf dem Quelldatenbankserver, die in den Dump aufgenommen werden sollen. Verwenden Sie den MySQL-Befehl SHOW DATABASES, um Ihre Datenbanken aufzulisten. |
| [BUCKET_NAME] | Der vom Nutzer erstellte Bucket in Cloud Storage, der zum Speichern der Dumpdatei verwendet wird (z. B. replica-bucket). |
| [DUMP_FILENAME] | Der Dateiname des Dumps, der mit der Dateierweiterung .gz endet (z. B. source-database.sql.gz). |
Nächste Schritte
Eine vollständige Schritt-für-Schritt-Anleitung zur Migration finden Sie unter Erste Schritte mit Cloud SQL for MySQL-Migrationen.