Puedes ejecutar la utilidad mysqldump directamente en tu base de datos de MySQL con las opciones que necesites. Sin embargo, si exportas 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 bases de datos para exportar. 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 los campos binarios se importen de forma correcta.--single-transactionInicia una transacción antes de ejecutarla. En lugar de bloquear toda la base de datos, esto le permite a mysqldump leer la base de datos en el estado actual, lo que hace que un volcado de datos sea coherente.--routinesPara incluir procedimientos y funciones almacenadosCuando se usa la versión 8 o posterior de
mysqldumppara exportar bases de datos de MySQL con 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 el origen de la migración es un servicio de base de datos relacional (RDS) para MySQL, haz lo siguiente:
- No se admite la propiedad
master-data. - Si tu servidor de la base de datos de origen admite GTID, usa la propiedad
--set-gtid-purged=on. De lo contrario, no uses esta propiedad. - Si usas un volcado manual para migrar tus datos, realiza la migración con el 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] | Es 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] | Es una lista separada por espacios de las bases de datos del 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] | Es el bucket de Cloud Storage que crea el usuario y que se usa para almacenar el archivo de volcado (por ejemplo, replica-bucket). |
| [DUMP_FILENAME] | Nombre del archivo de volcado, que termina con la extensión de archivo .gz (por ejemplo, source-database.sql.gz). |