

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usando um banco de dados compatível com MySQL como alvo para AWS Database Migration Service
<a name="CHAP_Target.MySQL"></a>

Você pode migrar dados para qualquer banco de dados compatível com MySQL usando AWS DMS, a partir de qualquer um dos mecanismos de dados de origem compatíveis. AWS DMS Se você estiver migrando para um banco de dados local compatível com o MySQL, é AWS DMS necessário que seu mecanismo de origem resida no ecossistema. AWS O mecanismo pode estar em um serviço AWS gerenciado, como Amazon RDS, Amazon Aurora ou Amazon S3. Ou o mecanismo pode estar em um banco de dados autogerenciado no Amazon EC2. 

Você pode usar o SSL para criptografar conexões entre o endpoint compatível com MySQL e a instância de replicação. Para obter mais informações sobre o uso do SSL com um endpoint compatível com MySQL, consulte [Usando SSL com AWS Database Migration Service](CHAP_Security.SSL.md). 

Para obter informações sobre as versões do MySQL que oferecem AWS DMS suporte como destino, consulte. [Metas para AWS DMS](CHAP_Introduction.Targets.md)

Você pode usar os seguintes bancos de dados compatíveis com 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
+ MariaDB Column Store
+ Amazon Aurora MySQL

**nota**  
Independentemente do mecanismo de armazenamento de origem (MyISAM, MEMÓRIA, etc.), o AWS DMS cria uma tabela de destino compatível com MySQL como InnoDB por padrão.   
Se precisar de uma tabela em um mecanismo de armazenamento diferente do InnoDB, será possível criar manualmente a tabela no destino compatível com MySQL e migrá-la utilizando a opção **Não fazer nada**. Para obter mais informações, consulte [Configurações de tarefa de carregamento completo](CHAP_Tasks.CustomizingTasks.TaskSettings.FullLoad.md).

Para obter mais detalhes sobre como trabalhar com bancos de dados compatíveis com MySQL como destino para o AWS DMS, consulte as seguintes seções. 

**Topics**
+ [Usando qualquer banco de dados compatível com MySQL como alvo para AWS Database Migration Service](#CHAP_Target.MySQL.Prerequisites)
+ [Limitações no uso de um banco de dados compatível com MySQL como alvo para AWS Database Migration Service](#CHAP_Target.MySQL.Limitations)
+ [Configurações de endpoint ao usar um banco de dados compatível com MySQL como destino para AWS DMS](#CHAP_Target.MySQL.ConnectionAttrib)
+ [Tipos de dados de destino do MySQL](#CHAP_Target.MySQL.DataTypes)

## Usando qualquer banco de dados compatível com MySQL como alvo para AWS Database Migration Service
<a name="CHAP_Target.MySQL.Prerequisites"></a>

Antes de começar a trabalhar com um banco de dados compatível com MySQL como destino do AWS DMS, confirme se você concluiu os seguintes pré-requisitos:
+ Forneça uma conta de usuário AWS DMS que tenha read/write privilégios no banco de dados compatível com MySQL. Para criar os privilégios necessários, execute os seguintes 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 a fase de migração de carga máxima, você precisa desativar as chaves externas nas suas tabelas de destino. Para desativar as verificações de chave estrangeira em um banco de dados compatível com MySQL durante um carregamento completo, você pode adicionar o seguinte comando à seção **Atributos de conexão extra** do AWS DMS console do seu endpoint de destino.

  ```
  Initstmt=SET FOREIGN_KEY_CHECKS=0;
  ```
+ Defina o parâmetro `local_infile = 1` do banco de dados para permitir que o AWS DMS carregue dados no banco de dados de destino.
+ Conceda os seguintes privilégios se você usar avaliações de pré-migração específicas do 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
  ```

## Limitações no uso de um banco de dados compatível com MySQL como alvo para AWS Database Migration Service
<a name="CHAP_Target.MySQL.Limitations"></a>

Ao usar um banco de dados MySQL como destino, AWS DMS não oferece suporte ao seguinte:
+ As instruções da linguagem de definição de dados (DDL) TRUNCATE PARTITION, DROP TABLE e RENAME TABLE.
+ Uso de uma declaração `ALTER TABLE table_name ADD COLUMN column_name` para adicionar colunas ao início ou meio de uma tabela.
+ Ao carregar dados em um destino compatível com MySQL em uma tarefa de carregamento total, AWS DMS não relata erros causados por restrições nos registros de tarefas, o que pode causar erros de chave duplicados ou incompatibilidades com o número de registros. Isso é causado pela forma como o MySQL trata dados locais com o comando `LOAD DATA`. Faça o seguinte durante a fase de carga máxima: 
  + Desativar restrições
  + Use a AWS DMS validação para garantir que os dados sejam consistentes.
+ Quando você atualiza o valor de uma coluna para seu valor existente, os bancos de dados compatíveis com MySQL retornam um aviso `0 rows affected`. Embora esse comportamento não seja tecnicamente um erro, ele é diferente de como a situação é controlada por outros mecanismos de banco de dados. Por exemplo, o Oracle executa uma atualização de uma linha. Para bancos de dados compatíveis com MySQL, AWS DMS gera uma entrada na tabela de controle awsdms\$1apply\$1exceptions e registra o seguinte aviso.

  ```
  Some changes from the source database had no impact when applied to
  the target database. See awsdms_apply_exceptions table for details.
  ```
+ O Aurora Sem Servidor está disponível como destino para o Amazon Aurora versão 2, compatível com o MySQL versão 5.7. (Selecione o Aurora Sem Servidor versão 2.07.1 para poder utilizar o Aurora Sem Servidor compatível com o MySQL 5.7.) Para ter mais informações sobre o Aurora Sem Servidor, consulte [Usar o Aurora Serverless v2](https://docs.aws.amazon.com//AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html) no *Guia do usuário do Amazon Aurora*.
+ AWS DMS não suporta o uso de um endpoint de leitura para o Aurora ou o Amazon RDS, a menos que as instâncias estejam no modo gravável, ou seja, `read_only` os parâmetros `innodb_read_only` e estejam definidos como ou. `0` `OFF` Para obter mais informações sobre como utilizar o Amazon RDS e o Aurora como destinos, consulte:
  +  [Como determinar a qual instância de banco de dados você está conectado](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.BestPractices.html#AuroraMySQL.BestPractices.DeterminePrimaryInstanceConnection) 
  +  [Atualizar réplicas de leitura com o MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_MySQL.Replication.ReadReplicas.html#USER_MySQL.Replication.ReadReplicas.Updates) 
+ Ao replicar o tipo de dados TIME, a parte fracionária do valor de tempo não é replicada.
+ Ao replicar o tipo de dados TIME com o atributo de conexão adicional `loadUsingCSV=false`, o valor do tempo é limitado ao intervalo `[00:00:00, 23:59:59]`.

## Configurações de endpoint ao usar um banco de dados compatível com MySQL como destino para AWS DMS
<a name="CHAP_Target.MySQL.ConnectionAttrib"></a>

É possível utilizar as configurações do endpoint para configurar o destino compatível com o MySQL de forma semelhante à utilização de atributos de conexão adicional. Você especifica as configurações ao criar o endpoint de destino usando o AWS DMS console ou usando o `create-endpoint` comando no [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), com a sintaxe `--my-sql-settings '{"EndpointSetting": "value", ...}'` JSON.

A tabela a seguir mostra as configurações de endpoints que é possível utilizar com o MySQL como destino.

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

Também é possível utilizar atributos de conexão adicionais para configurar o banco de dados de destino compatível com MySQL.

A tabela a seguir mostra os atributos de conexão adicionais que podem ser utilizados com o MySQL como origem.

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

Como alternativa, é possível utilizar o parâmetro `AfterConnectScript` do comando `--my-sql-settings` para desativar as verificações de chave estrangeira e especificar o fuso horário do banco de dados.

## Tipos de dados de destino do MySQL
<a name="CHAP_Target.MySQL.DataTypes"></a>

A tabela a seguir mostra os tipos de dados de destino do banco de dados MySQL que são suportados durante o uso AWS DMS e o mapeamento padrão dos tipos de AWS DMS dados.

Para obter informações adicionais sobre AWS DMS os tipos de dados, consulte[Tipos de dados do AWS Database Migration Service](CHAP_Reference.DataTypes.md).


|  AWS DMS tipos de dados  |  Tipos de dados do MySQL  | 
| --- | --- | 
|  BOOLEAN  |  BOOLEAN  | 
|  BYTES  |  Se o tamanho for de 1 a 65.535, utilize VARBINARY (tamanho).  Se o tamanho for de 65.536 a 2.147.483.647, utilize LONGLOB.  | 
|  DATE  |  DATE  | 
|  TIME  |  TIME  | 
|  TIMESTAMP  |  “Se a escala for => 0 e =< 6, use: DATETIME (escala) Se a escala for => 7 e =< 9, use: VARCHAR (37)”  | 
|  INT1  |  TINYINT  | 
|  INT2  |  SMALLINT  | 
|  INT4  |  INTEGER  | 
|  INT8  |  BIGINT  | 
|  NUMERIC  |  DECIMAL (p,s)  | 
|  REAL4  |  FLOAT  | 
|  REAL8  |  DOUBLE PRECISION  | 
|  STRING  |  Se o tamanho for de 1 a 21.845, utilize VARCHAR (tamanho). Se o tamanho for de 21.846 a 2.147.483.647, utilize LONGTEXT.  | 
|  UINT1  |  UNSIGNED TINYINT  | 
|  UINT2  |  UNSIGNED SMALLINT  | 
|  UINT4  |  UNSIGNED INTEGER  | 
|  UINT8  |  UNSIGNED BIGINT  | 
|  WSTRING  |  Se o tamanho for de 1 a 32.767, utilize VARCHAR (tamanho).  Se o tamanho for de 32.768 a 2.147.483.647, utilize LONGTEXT.  | 
|  BLOB  |  Se o tamanho for de 1 a 65.535, utilize BLOB. Se o tamanho for de 65.536 a 2.147.483.647, utilize LONGBLOB. Se o tamanho for 0, utilize LONGBLOB (suporte pleno ao tipo LOB).  | 
|  NCLOB  |  Se o tamanho for de 1 a 65.535, use TEXT. Se o tamanho for de 65.536 a 2.147.483.647, utilize LONGTEXT com ucs2 para CHARACTER SET. Se o tamanho for 0, utilize LONGTEXT (suporte pleno ao tipo LOB) e ucs2 para CHARACTER SET.  | 
|  CLOB  |  Se o tamanho for de 1 a 65.535, use TEXT. Se o tamanho for de 65.536 a 2147483647, utilize LONGTEXT. Se o tamanho for 0, utilize LONGTEXT (suporte pleno ao tipo LOB).  | 