

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisation d'une base de données compatible MySQL comme cible pour AWS Database Migration Service
<a name="CHAP_Target.MySQL"></a>

Vous pouvez migrer des données vers n'importe quelle base de données compatible MySQL à l'aide AWS DMS de n'importe quel moteur de données source compatible. AWS DMS Si vous migrez vers une base de données compatible MySQL sur site, votre moteur source AWS DMS doit résider dans l'écosystème. AWS Le moteur peut se trouver sur un service AWS géré tel qu'Amazon RDS, Amazon Aurora ou Amazon S3. Sinon, le moteur peut se trouver sur une base de données autogérée sur Amazon EC2. 

Vous pouvez utiliser SSL pour chiffrer les connexions entre votre point de terminaison compatible MySQL et l'instance de réplication. Pour plus d'informations sur l'utilisation de SSL avec un point de terminaison compatible MySQL, consultez [Utilisation du protocole SSL avec AWS Database Migration Service](CHAP_Security.SSL.md). 

Pour plus d'informations sur les versions de MySQL AWS DMS prises en charge en tant que cible, consultez[Objectifs pour AWS DMS](CHAP_Introduction.Targets.md).

Vous pouvez utiliser les bases de données compatibles MySQL suivantes comme cibles pour : AWS DMS
+ MySQL Community Edition
+ MySQL Standard Edition
+ MySQL Enterprise Edition
+ MySQL Cluster Carrier Grade Edition
+ MariaDB Community Edition
+ MariaDB Enterprise Edition
+ MariaDB Column Store
+ Amazon Aurora MySQL

**Note**  
Quel que soit le moteur de stockage source (MyISAM, MEMORY, etc.), AWS DMS crée une table cible compatible MySQL en tant que table InnoDB par défaut.   
Si vous avez besoin d'une table qui utilise un moteur de stockage autre qu'InnoDB, vous pouvez manuellement créer la table sur la cible compatible avec MySQL et migrer la table à l'aide de l'option **Ne rien faire**. Pour de plus amples informations, veuillez consulter [Paramètres de tâche de chargement complet](CHAP_Tasks.CustomizingTasks.TaskSettings.FullLoad.md).

Pour plus de détails sur l'utilisation d'une base de données compatible MySQL comme cible pour AWS DMS, consultez les sections suivantes. 

**Topics**
+ [Utiliser n'importe quelle base de données compatible MySQL comme cible pour AWS Database Migration Service](#CHAP_Target.MySQL.Prerequisites)
+ [Limitations relatives à l'utilisation d'une base de données compatible MySQL comme cible pour AWS Database Migration Service](#CHAP_Target.MySQL.Limitations)
+ [Paramètres du point de terminaison lors de l'utilisation d'une base de données compatible MySQL comme cible pour AWS DMS](#CHAP_Target.MySQL.ConnectionAttrib)
+ [Types de données cibles pour MySQL](#CHAP_Target.MySQL.DataTypes)

## Utiliser n'importe quelle base de données compatible MySQL comme cible pour AWS Database Migration Service
<a name="CHAP_Target.MySQL.Prerequisites"></a>

Avant de commencer à utiliser une base de données compatible avec MySQL comme cible pour AWS DMS, assurez-vous que les conditions préalables suivantes sont remplies :
+ Fournissez un compte utilisateur AWS DMS disposant de read/write privilèges d'accès à la base de données compatible MySQL. Pour créer les privilèges nécessaires, exécutez les commandes suivantes.

  ```
  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>'@'%';
  ```
+ Pendant la phase de migration de chargement complet, vous devez désactiver les clés étrangères sur vos tables cibles. Pour désactiver les vérifications par clé étrangère sur une base de données compatible MySQL pendant un chargement complet, vous pouvez ajouter la commande suivante à la section **Attributs de connexion supplémentaires** de la AWS DMS console pour votre point de terminaison cible.

  ```
  Initstmt=SET FOREIGN_KEY_CHECKS=0;
  ```
+ Définissez le paramètre de base de données `local_infile = 1` pour permettre à AWS DMS de charger les données dans la base de données cible.
+ Accordez les privilèges suivants si vous utilisez des évaluations de prémigration spécifiques à 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
  ```

## Limitations relatives à l'utilisation d'une base de données compatible MySQL comme cible pour AWS Database Migration Service
<a name="CHAP_Target.MySQL.Limitations"></a>

Lorsque vous utilisez une base de données MySQL comme cible, les AWS DMS fonctionnalités suivantes ne sont pas prises en charge :
+ Les instructions en langage de définition de données (DDL) TRUNCATE PARTITION, DROP TABLE et RENAME TABLE.
+ Utilisation d'une instruction `ALTER TABLE table_name ADD COLUMN column_name` pour ajouter des colonnes au début ou au milieu d'une table.
+ Lorsque vous chargez des données sur une cible compatible MySQL dans le cadre d'une tâche à chargement complet, AWS DMS ne signale pas les erreurs causées par des contraintes dans les journaux des tâches, ce qui peut entraîner des erreurs clés dupliquées ou des incohérences avec le nombre d'enregistrements. Cela est dû à la façon dont MySQL gère les données locales avec la commande `LOAD DATA`. Veillez à effectuer les opérations suivantes pendant la phase de chargement complet : 
  + Désactivez les contraintes.
  + Utilisez AWS DMS la validation pour vous assurer que les données sont cohérentes.
+ Lorsque vous mettez à jour la valeur d'une colonne à sa valeur existante, les bases de données compatibles MySQL renvoient un avertissement `0 rows affected`. Bien que ce comportement ne soit pas techniquement une erreur, il est différent de la façon dont la situation est gérée par d'autres moteurs de base de données. Par exemple, Oracle effectue une mise à jour d'une seule ligne. Pour les bases de données compatibles avec MySQL, AWS DMS génère une entrée dans la table de contrôle awsdms\$1apply\$1exceptions et enregistre l'avertissement suivant.

  ```
  Some changes from the source database had no impact when applied to
  the target database. See awsdms_apply_exceptions table for details.
  ```
+ Aurora sans serveur est disponible en tant que cible pour Amazon Aurora version 2, compatible avec MySQL version 5.7. (Sélectionnez Aurora MySQL version 2.07.1 pour pouvoir utiliser Aurora sans serveur avec la compatibilité MySQL 5.7.) Pour plus d'informations sur Aurora Serverless, consultez la section [Utilisation d'Aurora Serverless v2](https://docs.aws.amazon.com//AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html) dans le guide de l'*utilisateur Amazon Aurora*.
+ AWS DMS ne prend pas en charge l'utilisation d'un point de terminaison de lecteur pour Aurora ou Amazon RDS, sauf si les instances sont en mode inscriptible, c'est-à-dire que les `innodb_read_only` paramètres `read_only` et sont définis sur ou. `0` `OFF` Pour plus d’informations sur l’utilisation d’Amazon RDS et Aurora en tant que cibles, consultez les rubriques suivantes :
  +  [Détermination de l’instance de base de données à laquelle vous êtes connecté](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.BestPractices.html#AuroraMySQL.BestPractices.DeterminePrimaryInstanceConnection) 
  +  [Mise à jour des réplicas en lecture avec MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_MySQL.Replication.ReadReplicas.html#USER_MySQL.Replication.ReadReplicas.Updates) 
+ Lors de la réplication du type de données TIME, une fraction de la valeur temporelle n'est pas répliquée.
+ Lors de la réplication du type de données TIME avec un attribut de connexion supplémentaire`loadUsingCSV=false`, la valeur temporelle est limitée à une plage. `[00:00:00, 23:59:59]`

## Paramètres du point de terminaison lors de l'utilisation d'une base de données compatible MySQL comme cible pour AWS DMS
<a name="CHAP_Target.MySQL.ConnectionAttrib"></a>

Vous pouvez utiliser des paramètres de point de terminaison pour configurer la base de données cible compatible MySQL comme si vous utilisiez des attributs de connexion supplémentaires. Vous spécifiez les paramètres lorsque vous créez le point de terminaison cible à l'aide de la AWS DMS console ou à l'aide de la `create-endpoint` commande dans le [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), avec la syntaxe `--my-sql-settings '{"EndpointSetting": "value", ...}'` JSON.

Les paramètres de point de terminaison que vous pouvez utiliser avec MySQL en tant que cible sont indiqués dans le tableau suivant.

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

Vous pouvez également utiliser les attributs de connexion supplémentaires pour configurer la base de données cible compatible MySQL.

Le tableau suivant indique les attributs de connexion supplémentaires que vous pouvez utiliser avec MySQL en tant que cible.

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

Vous pouvez également utiliser le paramètre `AfterConnectScript` de la commande `--my-sql-settings` pour désactiver les contrôles de clés étrangères et spécifier le fuseau horaire de la base de données.

## Types de données cibles pour MySQL
<a name="CHAP_Target.MySQL.DataTypes"></a>

Le tableau suivant indique les types de données cibles de base de données MySQL pris en charge lors de l'utilisation AWS DMS et le mappage par défaut à partir AWS DMS des types de données.

Pour plus d'informations sur AWS DMS les types de données, consultez[Types de données pour AWS Database Migration Service](CHAP_Reference.DataTypes.md).


|  AWS DMS types de données  |  Types de données MySQL  | 
| --- | --- | 
|  BOOLEAN  |  BOOLEAN  | 
|  BYTES  |  Si la longueur est comprise entre 1 et 65 535, utilisez VARBINARY (length).  Si la longueur est comprise entre 65 536 et 2 147 483 647, utilisez LONGLOB.  | 
|  DATE  |  DATE  | 
|  TIME  |  TIME  | 
|  TIMESTAMP  |  « Si l'échelle est => 0 et =< 6, alors : DATETIME (Scale) Si l'échelle est => 7 et =< 9, alors : VARCHAR (37) »  | 
|  INT1  |  TINYINT  | 
|  INT2  |  SMALLINT  | 
|  INT4  |  INTEGER  | 
|  INT8  |  BIGINT  | 
|  NUMERIC  |  DECIMAL (p,s)  | 
|  REAL4  |  FLOAT  | 
|  REAL8  |  DOUBLE PRECISION  | 
|  CHAÎNE  |  Si la longueur est comprise entre 1 et 21 845, utilisez VARCHAR (length). Si la longueur est comprise entre 21 846 et 2 147 483 647, utilisez LONGTEXT.  | 
|  UINT1  |  UNSIGNED TINYINT  | 
|  UINT2  |  UNSIGNED SMALLINT  | 
|  UINT4  |  UNSIGNED INTEGER  | 
|  UINT8  |  UNSIGNED BIGINT  | 
|  WSTRING  |  Si la longueur est comprise entre 1 et 32 767, utilisez VARCHAR (length).  Si la longueur est comprise entre 32 768 et 2 147 483 647, utilisez LONGTEXT.  | 
|  BLOB  |  Si la longueur est comprise entre 1 et 65 535, utilisez BLOB. Si la longueur est comprise entre 65 536 et 2 147 483 647, utilisez LONGBLOB. Si la longueur est 0, utilisez LONGBLOB (full LOB support).  | 
|  NCLOB  |  Si la longueur est comprise entre 1 et 65 535, utilisez TEXT. Si la longueur est comprise entre 65 536 et 2 147 483 647, utilisez LONGTEXT avec ucs2 pour CHARACTER SET. Si la longueur est 0, utilisez LONGTEXT (full LOB support) avec ucs2 pour CHARACTER SET.  | 
|  CLOB  |  Si la longueur est comprise entre 1 et 65 535, utilisez TEXT. Si la longueur est comprise entre 65 536 et 2 147 483 647, utilisez LONGTEXT. Si la longueur est 0, utilisez LONGTEXT (full LOB support).  | 