Importación de datos de una base de datos de MariaDB o MySQL externa a una instancia de base de datos de RDS para MariaDB o RDS para MySQL - Amazon Relational Database Service

Importación de datos de una base de datos de MariaDB o MySQL externa a una instancia de base de datos de RDS para MariaDB o RDS para MySQL

También puede importar datos de una base de datos de MySQL o MariaDB existente a una instancia de base de datos de MySQL o MariaDB. Esto se lleva a cabo copiando la base de datos con mysqldump y canalizándola de forma directa en la instancia de base de datos de MySQL o MariaDB. La utilidad de línea de comandos mysqldump suele utilizarse para crear copias de seguridad y transferir datos de un servidor de MySQL o MariaDB a otro. Se incluye con el software cliente de MySQL y MariaDB.

nota

Si importa o exporta grandes cantidades de datos con una instancia de base de datos de MySQL, lo más fiable y rápido para introducir y sacar los datos de Amazon RDS es mediante archivos de copia de seguridad xtrabackup y Amazon S3. Para obtener más información, consulte Restauración de una copia de seguridad en una instancia de base de datos MySQL..

Un comando mysqldump típico para mover datos de una base de datos externa a una instancia de base de datos de Amazon RDS tiene este aspecto.

mysqldump -u local_user \ --databases database_name \ --single-transaction \ --compress \ --order-by-primary \ -plocal_password | mysql -u RDS_user \ --port=port_number \ --host=host_name \ -pRDS_password
importante

Asegúrese de no dejar un espacio entre la opción -p y la contraseña especificada.

Especifique credenciales distintas de las que se muestran aquí como práctica recomendada de seguridad.

Asegúrese de conocer las siguientes recomendaciones y consideraciones:

  • Excluya los siguientes esquemas del archivo de volcado: sys, performance_schema e information_schema. La utilidad mysqldump excluye estos esquemas de forma predeterminada.

  • Si necesita migrar usuarios y privilegios, considere la posibilidad de usar una herramienta que genere el lenguaje de control de datos (DCL) para volver a crearlos, como la utilidad pt-show-grants.

  • Para realizar la importación, asegúrese de que el usuario que lo haga tenga acceso a la instancia de base de datos. Para obtener más información, consulte Control de acceso con grupos de seguridad.

Los parámetros son los siguientes:

  • -u local_user: use este parámetro para especificar un nombre de usuario. La primera vez que utilice este parámetro, debe especificar el nombre de una cuenta de usuario en la base de datos de MySQL o MariaDB local identificada con el parámetro --databases.

  • --databases database_name: use este parámetro para especificar el nombre de la base de datos en la instancia de MySQL o MariaDB local que desea importar a Amazon RDS.

  • --single-transaction: use este parámetro para asegurarse de que todos los datos cargados desde la base de datos local sean coherentes en un momento determinado. Si hay otros procesos que modifican los datos mientras mysqldump los lee, el uso de este parámetro ayuda a mantener la integridad de los datos.

  • --compress: use este parámetro para reducir el consumo de ancho de banda mediante la compresión de los datos de la base de datos local antes de su envío a Amazon RDS.

  • --order-by-primary: use este parámetro para reducir el tiempo de carga mediante la ordenación de los datos de cada tabla según su clave primaria.

  • -plocal_password: use este parámetro para especificar una contraseña. La primera vez que use este parámetro, debe especificar la contraseña de la cuenta de usuario identificada por el primer parámetro -u.

  • -u RDS_user: use este parámetro para especificar un nombre de usuario. La segunda vez que utilice este parámetro, debe especificar el nombre de una cuenta de usuario en la base de datos predeterminada de la instancia de base de datos de MySQL o MariaDB identificada con el parámetro --host.

  • --port port_number: se utiliza para especificar el puerto de la instancia de base de datos de MySQL o MariaDB. El valor predeterminado es 3306, salvo que se haya cambiado al crear la instancia.

  • --host host_name: se utiliza para especificar el nombre del sistema de nombres de dominio (DNS) del punto de conexión de la instancia de base de datos de Amazon RDS, por ejemplo, myinstance.123456789012.us-east-1.rds.amazonaws.com. Puede encontrar el valor del punto de conexión en los detalles de la instancia en la consola de administración de Amazon RDS.

  • -pRDS_password: use este parámetro para especificar una contraseña. La segunda vez que use este parámetro, debe especificar la contraseña de la cuenta de usuario identificada por el segundo parámetro -u.

Asegúrese de crear de forma manual procedimientos almacenados, desencadenadores, funciones o eventos en su base de datos de Amazon RDS. Si hay alguno de estos objetos en la base de datos que va a copiar, exclúyalos cuando ejecute mysqldump. Para hacerlo, incluya los siguientes parámetros con el comando mysqldump: --routines=0 --triggers=0 --events=0.

En el siguiente ejemplo se copia la base de datos de ejemplo world del host local a una instancia de base de datos MySQL.

Para Linux, macOS o Unix:

sudo mysqldump -u localuser \ --databases world \ --single-transaction \ --compress \ --order-by-primary \ --routines=0 \ --triggers=0 \ --events=0 \ -plocalpassword | mysql -u rdsuser \ --port=3306 \ --host=myinstance.123456789012.us-east-1.rds.amazonaws.com \ -prdspassword

Para Windows, ejecute el siguiente comando en un símbolo del sistema que se haya abierto con un clic con el botón derecho en Command Prompt (Símbolo del sistema) del menú de programas de Windows y con la selección de Run as administrator (Ejecutar como administrador).

mysqldump -u localuser ^ --databases world ^ --single-transaction ^ --compress ^ --order-by-primary ^ --routines=0 ^ --triggers=0 ^ --events=0 ^ -plocalpassword | mysql -u rdsuser ^ --port=3306 ^ --host=myinstance.123456789012.us-east-1.rds.amazonaws.com ^ -prdspassword
nota

Especifique credenciales distintas de las que se muestran aquí como práctica recomendada de seguridad.