

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Usar una base de datos compatible con MySQL como destino para AWS Database Migration Service
<a name="CHAP_Target.MySQL"></a>

Puede migrar datos a cualquier base de datos compatible con MySQL utilizando AWS DMS cualquiera de los motores de datos de origen compatibles. AWS DMS Si va a migrar a una base de datos local compatible con MySQL, es AWS DMS necesario que el motor de origen resida en el ecosistema. AWS El motor puede estar en un servicio AWS gestionado, como Amazon RDS, Amazon Aurora o Amazon S3. O el motor puede estar en una base de datos autoadministrada en Amazon EC2. 

Puede utilizar SSL para cifrar las conexiones entre su punto de enlace compatible con MySQL y la instancia de replicación. Para obtener más información acerca de cómo utilizar SSL con un punto de enlace compatible con MySQL, consulte [Uso de SSL con AWS Database Migration Service](CHAP_Security.SSL.md). 

Para obtener información sobre las versiones de MySQL AWS DMS compatibles como destino, consulte[Objetivos para AWS DMS](CHAP_Introduction.Targets.md).

Puede utilizar las siguientes bases de datos compatibles con MySQL como destinos para: AWS DMS
+ MySQL Community Edition
+ MySQL Standard Edition
+ MySQL Enterprise Edition
+ MySQL Cluster Carrier Grade Edition
+ MariaDB Community Edition
+ MariaDB Enterprise Edition
+ Column Store de MariaDB
+ Amazon Aurora MySQL

**nota**  
Independientemente del motor de almacenamiento del origen (MyISAM, MEMORY, etc.), AWS DMS crea una tabla de destino compatible con MySQL como la tabla InnoDB de forma predeterminada.   
Si necesita una tabla con un motor de almacenamiento que no sea InnoDB, puede crear manualmente la tabla en el destino compatible con MySQL y migrar la tabla con la opción **Do nothing (No hacer nada)**. Para obtener más información, consulte [Configuración de tareas de carga completa](CHAP_Tasks.CustomizingTasks.TaskSettings.FullLoad.md).

Para obtener más información sobre cómo trabajar con las bases de datos compatibles con MySQL como destino para AWS DMS, consulte las secciones siguientes. 

**Topics**
+ [Usar cualquier base de datos compatible con MySQL como destino para AWS Database Migration Service](#CHAP_Target.MySQL.Prerequisites)
+ [Limitaciones en el uso de una base de datos compatible con MySQL como destino para AWS Database Migration Service](#CHAP_Target.MySQL.Limitations)
+ [Configuración de punto final cuando se utiliza una base de datos compatible con MySQL como destino para AWS DMS](#CHAP_Target.MySQL.ConnectionAttrib)
+ [Tipos de datos de destino para MySQL](#CHAP_Target.MySQL.DataTypes)

## Usar cualquier base de datos compatible con MySQL como destino para AWS Database Migration Service
<a name="CHAP_Target.MySQL.Prerequisites"></a>

Antes de empezar a trabajar con una base de datos compatible MySQL como destino para AWS DMS, asegúrese de que cumple los siguientes requisitos previos:
+ Proporcione una cuenta de usuario AWS DMS que tenga read/write privilegios en la base de datos compatible con MySQL. Para crear los privilegios necesarios, ejecute los siguientes comandos.

  ```
  CREATE USER '<user acct>'@'%' IDENTIFIED BY '<user password>';
  GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT, CREATE TEMPORARY TABLES  ON <schema>.* TO 
  '<user acct>'@'%';
  GRANT ALL PRIVILEGES ON awsdms_control.* TO '<user acct>'@'%';
  ```
+ Durante la fase de migración de carga completa, debe desactivar las claves externas en las tablas de destino. Para deshabilitar las comprobaciones de claves externas en una base de datos compatible con MySQL durante una carga completa, puede añadir el siguiente comando a la sección de **atributos de conexión adicionales** de la AWS DMS consola de su punto final de destino.

  ```
  Initstmt=SET FOREIGN_KEY_CHECKS=0;
  ```
+ Establezca el parámetro de base de datos `local_infile = 1` para permitir que AWS DMS cargue datos en la base de datos de destino.
+ Conceda los siguientes privilegios si utiliza las evaluaciones previas a la migración específicas de MySQL.

  ```
  grant select on mysql.user to <dms_user>;
  grant select on mysql.db to <dms_user>;
  grant select on mysql.tables_priv to <dms_user>;
  grant select on mysql.role_edges to <dms_user>  #only for MySQL version 8.0.11 and higher
  ```

## Limitaciones en el uso de una base de datos compatible con MySQL como destino para AWS Database Migration Service
<a name="CHAP_Target.MySQL.Limitations"></a>

Cuando se utiliza una base de datos MySQL como destino, AWS DMS no admite lo siguiente:
+ Las instrucciones del lenguaje de definición de datos (DDL): TRUNCATE PARTITION, DROP TABLE y RENAME TABLE.
+ Utilizar una instrucción `ALTER TABLE table_name ADD COLUMN column_name` para añadir columnas al inicio o en la mitad de una tabla.
+ Al cargar datos en un destino compatible con MySQL en una tarea de carga completa, AWS DMS no informa de los errores causados por restricciones en los registros de tareas, que pueden provocar errores clave duplicados o discrepancias con el número de registros. Esto se debe a la forma en que MySQL maneja los datos locales con el comando `LOAD DATA`. Asegúrese de hacer lo siguiente durante la fase de carga completa: 
  + Desactivar restricciones
  + Usa la AWS DMS validación para asegurarte de que los datos son coherentes.
+ Al actualizar el valor de una columna con el valor existente, las bases de datos compatibles con MySQL devuelven una advertencia `0 rows affected`. Aunque este comportamiento no es un error desde el punto de vista técnico, es diferente de la forma en que abordan la situación otros motores de base de datos. Por ejemplo, Oracle realiza una actualización de una fila. Para las bases de datos compatibles con MySQL, AWS DMS genera una entrada en la tabla de control awsdms\$1apply\$1exceptions y registra la siguiente advertencia.

  ```
  Some changes from the source database had no impact when applied to
  the target database. See awsdms_apply_exceptions table for details.
  ```
+ Aurora sin servidor está disponible como destino para Amazon Aurora versión 2, compatible con MySQL versión 5.7. (Seleccione la versión 2.07.1 de Aurora MySQL para poder usar Aurora sin servidor con la compatibilidad de MySQL 5.7). Para obtener más información sobre Aurora sin servidor, consulte [Uso de Aurora Serverless v2](https://docs.aws.amazon.com//AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html) en la *Guía del usuario de Amazon Aurora*.
+ AWS DMS no admite el uso de un punto final de lectura para Aurora o Amazon RDS, a menos que las instancias estén en modo grabable, es decir, que `innodb_read_only` los parámetros `read_only` y estén configurados en o. `0` `OFF` Para obtener más información acerca del uso de Amazon RDS y Aurora como objetivos, consulte lo siguiente:
  +  [Determinar a qué instancia de base de datos se ha conectado](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.BestPractices.html#AuroraMySQL.BestPractices.DeterminePrimaryInstanceConnection) 
  +  [Actualización de réplicas de lectura con MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_MySQL.Replication.ReadReplicas.html#USER_MySQL.Replication.ReadReplicas.Updates) 
+ Al replicar un tipo de datos TIME, una fracción del valor temporal no se replica.
+ Al replicar el tipo de datos TIME con un atributo de conexión adicional `loadUsingCSV=false`, el valor de tiempo se limita al rango `[00:00:00, 23:59:59]`.

## Configuración de punto final cuando se utiliza una base de datos compatible con MySQL como destino para AWS DMS
<a name="CHAP_Target.MySQL.ConnectionAttrib"></a>

Puede utilizar la configuración de punto de conexión para configurar la base de datos de destino compatible con MySQL de forma similar al uso de atributos de conexión adicionales. Los ajustes se especifican al crear el punto final de destino mediante la AWS DMS consola o mediante el `create-endpoint` comando del [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), con la `--my-sql-settings '{"EndpointSetting": "value", ...}'` sintaxis JSON.

La siguiente tabla muestra la configuración de punto de conexión que puede utilizar con MySQL como destino.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/dms/latest/userguide/CHAP_Target.MySQL.html)

Puede utilizar atributos de conexión adicionales para configurar la base de datos de destino compatible con MySQL.

En la tabla siguiente se muestran los atributos de conexión adicionales que puede utilizar con MySQL como destino.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/dms/latest/userguide/CHAP_Target.MySQL.html)

Como alternativa, puede usar el parámetro `AfterConnectScript` del comando `--my-sql-settings` para desactivar las comprobaciones de claves foráneas y especificar la zona horaria de la base de datos.

## Tipos de datos de destino para MySQL
<a name="CHAP_Target.MySQL.DataTypes"></a>

La siguiente tabla muestra los tipos de datos de destino de la base de datos MySQL que se admiten cuando se utilizan AWS DMS y el mapeo predeterminado a partir de AWS DMS los tipos de datos.

Para obtener información adicional sobre AWS DMS los tipos de datos, consulte[Tipos de datos de AWS Database Migration Service](CHAP_Reference.DataTypes.md).


|  AWS DMS tipos de datos  |  Tipos de datos de MySQL  | 
| --- | --- | 
|  BOOLEAN  |  BOOLEANO  | 
|  BYTES  |  Si la longitud es de 1 a 65 535, utilice VARBINARY (longitud).  Si la longitud es de 65 536 a 2 147 483 647, utilice LONGLOB.  | 
|  DATE  |  DATE  | 
|  TIME  |  TIME  | 
|  TIMESTAMP  |  "Si la escala es => 0 y =< 6, utilice DATETIME (escala) Si la escala es => 7 y =< 9, utilice: VARCHAR (37)  | 
|  INT1  |  TINYINT  | 
|  INT2  |  SMALLINT  | 
|  INT4  |  INTEGER  | 
|  INT8  |  BIGINT  | 
|  NUMERIC  |  DECIMAL (p,s)  | 
|  REAL4  |  FLOAT  | 
|  REAL8  |  DOUBLE PRECISION  | 
|  STRING  |  Si la longitud es de 1 a 21 845, utilice VARCHAR (longitud). Si la longitud es de 21 846 a 2 147 483 647, utilice LONGTEXT.  | 
|  UINT1  |  UNSIGNED TINYINT  | 
|  UINT2  |  UNSIGNED SMALLINT  | 
|  UINT4  |  UNSIGNED INTEGER  | 
|  UINT8  |  UNSIGNED BIGINT  | 
|  WSTRING  |  Si la longitud es de 1 a 32 767, utilice VARCHAR (longitud).  Si la longitud es de 32 768 a 2 147 483 647, utilice LONGTEXT.  | 
|  BLOB  |  Si la longitud es de 1 a 65 535, utilice BLOB. Si la longitud es de 65 536 a 2 147 483 647, utilice LONGBLOB. Si la longitud es 0, utilice LONGBLOB (compatibilidad completa con LOB).  | 
|  NCLOB  |  Si la longitud es de 1 a 65 535, utilice TEXT. Si la longitud es de 65 536 a 2 147 483 647, utilice LONGTEXT con ucs2 para CHARACTER SET. Si la longitud es 0, utilice LONGTEXT (compatibilidad completa con LOB) con ucs2 para CHARACTER SET.  | 
|  CLOB  |  Si la longitud es de 1 a 65 535, utilice TEXT. Si la longitud es de 65 536 a 2 147 483 647, utilice LONGTEXT. Si la longitud es 0, utilice LONGTEXT (compatibilidad completa con LOB).  | 