Puedes ejecutar la utilidad mysqldump directamente en tu base de datos de MySQL con las opciones que necesites. Sin embargo, si realizas la exportación para importar los datos a una base de datos de Cloud SQL, usa la utilidad mysqldump con las siguientes marcas:
--databasesEspecifica una lista explícita de las bases de datos que se exportarán. Esta lista no debe contener las bases de datos del sistema (sys,mysql,performance_schemayinformation_schema).--hex-blobSi tu base de datos contiene campos binarios, debes usar esta marca para asegurarte de que se importen correctamente.--single-transactionInicia una transacción antes de ejecutarla. En lugar de bloquear toda la base de datos, esto permite que mysqldump lea la base de datos en el estado actual, lo que genera un volcado de datos coherente.--routinesPara incluir funciones y procedimientos almacenados.Cuando se usa la versión 8 o posterior de
mysqldumppara exportar bases de datos de MySQL de versiones anteriores a la 8:--column-statistics=0Esta marca quita la tabla COLUMN_STATISTICS de la exportación de la base de datos para evitar el error
Unknown table 'COLUMN_STATISTICS' in information_schema (1109). Para obtener más información, consulta Diagnostica problemas.
También se recomienda usar las siguientes marcas:
--no-autocommit--default-character-set=utf8mb4--master-data
Ejecuta el siguiente comando desde una máquina con conectividad de red a tu servidor de MySQL:
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
Si la fuente de la migración es un servicio de base de datos relacional (RDS) para MySQL:
- No se admite la propiedad
master-data. - Si tu servidor de base de datos de origen admite GTID, usa la propiedad
--set-gtid-purged=on; de lo contrario, no la uses. - Si usas un volcado manual para migrar tus datos, realiza la migración con GTID habilitado.
Puede que este comando luzca como el siguiente ejemplo:
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
Además, debes configurar las instancias de RDS para conservar los registros binarios. Puede que este comando luzca como el siguiente ejemplo:
# Sets the retention period to one week.
call mysql.rds_set_configuration('binlog retention hours', 168);
Reemplaza [PROPERTIES_IN_BRACKETS] por los siguientes valores:
| Propiedad | Valor |
| [SOURCE_ADDR] | La dirección IPv4 o el nombre de host del servidor de la base de datos de origen. |
| [SOURCE_PORT] | Es el puerto para el servidor de la base de datos de origen. |
| [USERNAME] | La cuenta de usuario de MySQL. |
| [DBS] | Una lista separada por espacios de las bases de datos en el servidor de la base de datos de origen que se incluirán en el volcado. Usa el comando SHOW DATABASES de MySQL para enumerar tus bases de datos. |
| [BUCKET_NAME] | El bucket en Cloud Storage que crea el usuario y que se usa para almacenar el archivo de volcado (por ejemplo, replica-bucket). |
| [DUMP_FILENAME] | El nombre de archivo del volcado, que termina con una extensión de archivo .gz (por ejemplo, source-database.sql.gz). |
¿Qué sigue?
Para obtener un instructivo completo de la migración paso a paso, consulta Comienza a usar las migraciones de Cloud SQL para MySQL.