MySQL no Amazon RDS - Amazon Relational Database Service

MySQL no Amazon RDS

O Amazon RDS suporta instâncias de banco de dados executando várias versões do MySQL. Você pode usar as seguintes versões principais:

  • MySQL 8.0

  • MySQL 5.7

  • MySQL 5.6

  • MySQL 5.5

Para obter mais informações sobre o suporte a versões secundárias, consulte MySQL em versões do Amazon RDS.

Primeiro use as ferramentas de gerenciamento ou interfaces do Amazon RDS para criar uma instância de banco de dados MySQL do Amazon RDS. Depois, é possível redimensionar a instância de banco de dados, autorizar conexões com a instância de banco de dados, criar e restaurar de backups ou de snapshots, criar Multi-AZ secundários, criar réplicas de leitura e monitorar o desempenho da instância de banco de dados. Você usa utilitários e aplicativos padrão do MySQL para armazenar e acessar os dados na instância de banco de dados.

O Amazon RDS para MySQL é compatível com vários padrões do setor. Por exemplo, use bancos de dados do Amazon RDS for MySQL para criar aplicativos compatíveis com HIPAA e para armazenar informações relacionadas à integridade, incluindo informações de saúde protegidas (PHI), sob um Acordo de associado comercial (BAA) com a AWS. O Amazon RDS for MySQL também atende aos requisitos de segurança do Federal Risk and Authorization Management Program (FedRAMP) e recebeu uma autoridade provisória para operar (P-ATO) da Joint Authorization Board (JAB) da FedRAMP na linha de base da FedRAMP HIGH na região AWS GovCloud (Oeste dos EUA). Para obter mais informações sobre os padrões de conformidade compatíveis, consulte Conformidade da Nuvem AWS.

Para obter informações sobre os recursos em cada versão do MySQL, consulte Principais recursos do MySQL na documentação do MySQL.

Tarefas comuns de gerenciamento para o MySQL no Amazon RDS

A seguir, você encontra tarefas de gerenciamento comuns que são executadas com uma instância de banco de dados MySQL do Amazon RDS, com links para documentação relevante de cada tarefa.

Área de tarefa Documentação relevante

Noções básicas sobre o Amazon RDS

Compreenda os principais componentes do Amazon RDS, incluindo instâncias de bancos de dados, regiões da AWS, zonas de disponibilidade, grupos de segurança, grupos de parâmetros e grupos de opções.

O que é o Amazon Relational Database Service (Amazon RDS)?

Configuração do Amazon RDS para o primeiro uso

Configure o Amazon RDS para que você possa criar instâncias de banco de dados MySQL na Amazon Web Services (AWS).

Configuração do Amazon RDS

Noções básicas sobre instâncias de banco de dados do Amazon RDS

Crie instâncias virtuais do servidor MySQL que são executadas na AWS. Como as instâncias de bancos de dados são os blocos de construção do Amazon RDS, recomendamos que você entenda seus princípios.

Instâncias de banco de dados do Amazon RDS

Criação de uma instância de banco de dados para produção

Crie uma instância de banco de dados para fins de produção. Criar uma instância inclui escolher uma classe de instância de banco de dados com capacidade de processamento e capacidade de memória adequadas e escolher um tipo de armazenamento que ofereça suporte à forma como você espera usar seu banco de dados.

Classes da instância de banco de dados

Tipos de armazenamento do Amazon RDS

Criar uma instância de banco de dados do Amazon RDS

Gerenciamento da segurança da instância de banco de dados

Por padrão, as instâncias de banco de dados são criadas com um firewall que impede o acesso a elas. Você deve então criar um security group com os endereços IP corretos e uma configuração de rede para acessar a instância de banco de dados. Você também pode usar políticas do AWS Identity and Access Management (IAM) para atribuir permissões que determinam quem tem permissão para gerenciar recursos do RDS.

Segurança em Amazon RDS

Gerenciamento do acesso usando políticas

Controlar acesso com grupos de segurança

Determinar se você está usando a plataforma EC2-VPC ou EC2-Classic

Conexão à instância de banco de dados

Conecte-se à sua instância de banco de dados usando um aplicativo de cliente do SQL padrão, como o utilitário de linha de comando MySQL ou o MySQL Workbench.

Conexão a uma instância de banco de dados executando o mecanismo de banco de dados do MySQL

Configuração da alta disponibilidade para uma instância de banco de dados de produção

Forneça alta disponibilidade com replicação em espera síncrona em uma zona de disponibilidade diferente, failover automático, tolerância a falhas para instâncias de banco de dados usando implantações Multi-AZ e réplicas de leitura.

Alta disponibilidade (Multi-AZ) para Amazon RDS

Configuração de uma instância de banco de dados em uma Amazon Virtual Private Cloud

Configure uma nuvem privada virtual (VPC) no serviço da Amazon VPC. Uma Amazon VPC é uma rede virtual logicamente isolada de outras redes virtuais na AWS.

Determinar se você está usando a plataforma EC2-VPC ou EC2-Classic

Trabalhar com uma instância de banco de dados em uma VPC

Configuração de parâmetros e recursos específicos do banco de dados MySQL

Configure parâmetros específicos do banco de dados MySQL com um parameter group que possa ser associado a várias instâncias de banco de dados. Você também pode configurar recursos específicos do banco de dados MySQL com um grupo de opções que pode ser associado a várias instâncias de bancos de dados.

Como trabalhar com grupos de parâmetros de banco de dados

Trabalhar com grupos de opções

Opções para instâncias de bancos de dados MySQL

Modificação de uma instância de banco de dados executando o mecanismo de banco de dados MySQL

Altere as configurações de uma instância de banco de dados para realizar tarefas, como adicionar mais armazenamento ou alterar a classe da instância de banco de dados.

Modificar uma instância de banco de dados do Amazon RDS

Configuração do backup e da restauração do banco de dados

Configure sua instância de banco de dados para tirar backups automatizados. Você também pode fazer o backup e a restauração dos seus bancos de dados manualmente usando arquivos de backup completos.

Trabalhar com backups

Como fazer backup e restauração de uma instância de banco de dados do Amazon RDS

Importação e exportação de dados

Importe dados de outras instâncias de bancos de dados MySQL do RDS, de instâncias MySQL executadas externamente ao Amazon RDS e outros tipos de fontes de dados, e exporte dados para instâncias MySQL executadas externamente ao Amazon RDS.

Restaurar um backup em uma instância de banco de dados MySQL do Amazon RDS

Monitoramento de uma instância de banco de dados MySQL

Monitore sua instância de banco de dados MySQL do RDS usando métricas, eventos e o Monitoramento avançado do RDS do Amazon CloudWatch. Visualize arquivos de log para a sua instância de banco de dados MySQL do RDS.

Monitorar uma instância de banco de dados do Amazon RDS

Exibir métricas de instância de banco de dados

Visualizar eventos do Amazon RDS

Arquivos de log do banco de dados do Amazon RDS

Arquivos de log do banco de dados MySQL

Replicating your data (Replicação dos dados)

Crie uma réplica de leitura do MySQL na mesma região da AWS ou em outra região. É possível usar réplicas de leitura para balanceamento de carga, recuperação de desastres e processamento de cargas de trabalho de banco de dados com muita leitura, como em análises e relatórios.

Como trabalhar com réplicas de leitura

Replicação com uma instância MySQL ou MariaDB executada externamente ao Amazon RDS

Também existem várias seções com informações úteis sobre como trabalhar com instâncias de bancos de dados MySQL do Amazon RDS:

MySQL em versões do Amazon RDS

Para o MySQL, os números de versão são organizados como versão X.Y.Z. Na terminologia do Amazon RDS, X.Y denota a versão primária, e Z é o número da versão secundária. Para implementações do Amazon RDS, uma alteração da versão é considerada primária se o número da versão primária for alterado, por exemplo, da versão 5.6 para a 5.7. Uma alteração da versão é considerada secundária se apenas o número da versão secundária for alterado, por exemplo, da versão 5.7.16 para a 5.7.21.

O Amazon RDS oferece suporte às seguintes versões do MySQL no momento:

Versão principal Versão secundária

MySQL 8.0

  • 8.0.21

  • 8.0.20

  • 8.0.19

  • 8.0.17

  • 8.0.16

  • 8.0.15

  • 8.0.13

  • 8.0.11

MySQL 5.7

  • 5.7.31

  • 5.7.30

  • 5.7.28

  • 5.7.26

  • 5.7.25

  • 5.7.24

  • 5.7.23

  • 5.7.22

  • 5.7.21

  • 5.7.19

  • 5.7.17

  • 5.7.16

MySQL 5.6

  • 5.6.48

  • 5.6.46

  • 5.6.44

  • 5.6.43

  • 5.6.41

  • 5.6.40

  • 5.6.39

  • 5.6.37

  • 5.6.35

  • 5.6.34

MySQL 5.5

  • 5.5.61

  • 5.5.59

  • 5.5.57

  • 5.5.54

  • 5.5.53

  • 5.5.46

Você pode especificar qualquer versão atualmente com suporte do MySQL ao criar uma nova instância de banco de dados. Você pode especificar a versão principal (como o MySQL 5.7) e qualquer versão secundária com suporte para a versão principal especificada. Se nenhuma versão for especificada, o Amazon RDS usará uma versão compatível por padrão, geralmente a versão mais recente. Se uma versão principal for especificada, mas uma versão secundária não, o Amazon RDS usará por padrão um lançamento recente da versão principal que você especificou. Para ver uma lista de versões com suporte, bem como os padrões para instâncias de banco de dados recém-criadas, use o comando da describe-db-engine-versionsAWS CLI.

A versão padrão do MySQL pode variar de acordo com a região da AWS. Para criar uma instância de banco de dados com uma versão secundária específica, especifique a versão secundária durante a criação da instância de banco de dados. É possível determinar a versão secundária padrão para uma região da AWS usando o seguinte comando da AWS CLI:

aws rds describe-db-engine-versions --default-only --engine mysql --engine-version major-engine-version --region region --query "*[].{Engine:Engine,EngineVersion:EngineVersion}" --output text

Substitua major-engine-version pela versão principal do mecanismo e substitua region pela região da AWS. Por exemplo, o comando da AWS CLI a seguir retorna a versão secundária padrão do mecanismo MySQL para a versão principal 5.7 e a região Oeste dos EUA (Oregon) da AWS (us-west-2):

aws rds describe-db-engine-versions --default-only --engine mysql --engine-version 5.7 --region us-west-2 --query '*[].{Engine:Engine,EngineVersion:EngineVersion}' --output text

Com o Amazon RDS, você controla quando vai atualizar a instância do MySQL para uma nova versão principal compatível com o Amazon RDS. É possível manter a compatibilidade com versões específicas do MySQL, testar novas versões com o aplicativo antes de implantar na produção e realizar atualizações da versão principal no período que melhor se adequar à sua programação.

Com a atualização automática de versão secundária habilitada, a instância de banco de dados é atualizada automaticamente para novas versões secundárias do MySQL, pois elas são compatíveis com o Amazon RDS. Essa correção ocorre durante a janela de manutenção programada. É possível modificar uma instância de banco de dados para habilitar ou desabilitar atualizações automáticas de versões secundárias.

Se você cancelar os upgrades automaticamente agendados, poderá fazer upgrade manualmente para um lançamento de versão secundária com suporte seguindo o mesmo procedimento de um upgrade de versão principal. Para obter informações, consulte Atualizar a versão de mecanismo de uma instância de banco de dados .

Atualmente, o Amazon RDS oferece suporte às atualizações de versão primária do MySQL versão 5.5 para a versão 5.6, do MySQL versão 5.6 para a versão 5.7 e do MySQL versão 5.7 para a versão 8.0. Como as atualizações da versão primária envolvem um certo risco de compatibilidade, elas não ocorrem automaticamente; é necessário fazer uma solicitação para modificar a instância de banco de dados. Você deve testar completamente qualquer atualização antes de atualizar suas instâncias de produção. Para obter mais informações sobre como atualizar uma instância de banco de dados MySQL, consulte Atualizar o mecanismo de banco de dados MySQL.

Você pode testar uma instância de banco de dados em relação a uma nova versão antes de atualizar, criando um snapshot de banco de dados da sua instância de banco de dados atual, restaurando do snapshot de banco de dados para criar uma nova instância de banco de dados e, depois, iniciando uma atualização de versão para a nova instância de banco de dados. Isso permite que você teste com segurança o clone atualizado de sua instância de banco de dados antes de decidir se deseja ou não atualizar sua instância de banco de dados original.

Para obter informações sobre a política de defasagem do Amazon RDS for MySQL, consulte Perguntas frequentes sobre o Amazon RDS.

Recursos do MySQL sem suporte pelo Amazon RDS

Atualmente, o Amazon RDS não oferece suporte aos seguintes recursos do MySQL:

  • Plugin de autenticação

  • Registro de erros no log do sistema

  • Plug-in de replicação de grupo

  • Criptografia de espaço de tabela do InnoDB

  • MariaDB Audit Plug-in (sem suporte somente para o MySQL do Amazon RDS versão 8.0)

    O MariaDB Audit Plug-in é compatível com o MySQL do Amazon RDS versões 5.5, 5.6 e 5.7.

  • Plugin de intensidade da senha

  • Variáveis de sistema mantidas

  • Filtros de replicação

  • Replicação semissíncrona

  • Espaço de tabela transportável

  • Plug-in X

nota

IDs de transação global são compatíveis com o MySQL 5.7.23 e versões mais recentes do MySQL 5.7. IDs de transação global não são compatíveis com o MySQL 5.5, 5.6 ou 8.0 do Amazon RDS.

A autenticação de banco de dados do IAM é compatível com o MySQL 5.6, 5.7 e 8.0. A autenticação de banco de dados do IAM não é compatível com o MySQL 5.5.

O Amazon RDS Performance Insights é compatível com o MySQL 5.6, 5.7 e 8.0. O Amazon RDS Performance Insights não é compatível com o MySQL 5.5.

Para oferecer uma experiência de serviço gerenciada, o Amazon RDS não fornece acesso ao shell para as instâncias de banco de dados. Ele também restringe o acesso a determinados procedimentos e tabelas do sistema que exigem privilégios avançados. O Amazon RDS oferece suporte para acesso a bancos de dados em uma instância de banco de dados usando qualquer aplicativo cliente SQL padrão. O Amazon RDS não permite o acesso direto do host a uma instância de banco de dados usando Telnet, Secure Shell (SSH) ou Windows Remote Desktop Connection. Ao criar uma instância de banco de dados, você recebe a função db_owner para todos os bancos de dados nessa instância e terá todas as permissões a nível do banco de dados, exceto aquelas usadas para backups. O Amazon RDS gerencia os backups para você.

Mecanismos de armazenamento com suporte para o MySQL no Amazon RDS

Enquanto o MySQL suporta vários mecanismos de armazenamento com recursos variados, nem todos eles são otimizados para durabilidade e recuperação de dados. O Amazon RDS suporta totalmente o mecanismo de armazenamento de InnoDB para instâncias de banco de dados do MySQL. Os recursos do Amazon RDS, como Point-In-Time Restore e o Snapshot Restore, exigem um mecanismo de armazenamento de recuperação e são suportados somente no mecanismo de armazenamento do InnoDB. Você deve estar executando uma instância do MySQL 5.6 ou posterior para usar a interface memcached do InnoDB. Para obter mais informações, consulte Suporte a memcached MySQL.

O Federated Storage Engine atualmente não é compatível com o Amazon RDS para MySQL.

Para esquemas criados pelo usuário, o mecanismo de armazenamento MyISAM não oferece suporte para recuperação confiável e pode resultar em dados perdidos ou corrompidos quando o MySQL é reiniciado após uma recuperação, impedindo que uma restauração pontual ou uma restauração de snapshot funcione conforme pretendido. No entanto, se você ainda optar por usar o MyISAM com o Amazon RDS, snapshots podem ser úteis em algumas condições.

nota

As tabelas do sistema no esquema mysql podem estar no armazenamento MyISAM.

Se você deseja converter tabelas do MyISAM em tabelas do InnoDB, pode usar o comando ALTER TABLE (por exemplo, alter table TABLE_NAME engine=innodb;). Lembre-se de que o MyISAM e o InnoDB têm pontos fortes e fracos diferentes. Portanto, é necessário que você avalie totalmente o impacto que essas alterações terão em seus aplicativos antes de fazê-las.

O MySQL 5.1 não tem mais suporte no Amazon RDS. No entanto, você pode restaurar snapshots do MySQL 5.1 existentes. Ao restaurar um snapshot do MySQL 5.1, a instância é automaticamente atualizada para o MySQL 5.5.

Segurança do MySQL no Amazon RDS

A segurança de instâncias de bancos de dados MySQL do Amazon RDS é gerenciada em três níveis:

  • O AWS Identity and Access Management controla quem pode executar ações de gerenciamento do Amazon RDS em instâncias de banco de dados. Ao se conectar à AWS usando credenciais do IAM, sua conta do IAM deve ter políticas do IAM que concedam as permissões necessárias para executar operações de gerenciamento do Amazon RDS. Para obter mais informações, consulte Identity and Access Management no Amazon RDS.

  • Quando você cria uma instância de banco de dados, você deve usar um security group da VPC ou um security group de banco de dados para controlar quais dispositivos e instâncias do Amazon EC2 podem abrir conexões ao endpoint e à porta da instância de banco de dados. Essas conexões podem ser feitas usando o Secure Sockets Layer (SSL). Além disso, as regras de firewall em sua empresa podem controlar se dispositivos sendo executados nela podem abrir conexões na instância de banco de dados.

  • Para autenticar o login e as permissões para uma instância de banco de dados MySQL, siga uma das seguintes abordagens, ou uma combinação delas.

    Você pode seguir a mesma abordagem de uma instância autônoma do MySQL. Comandos, como CREATE USER, RENAME USER, GRANT, REVOKE e SET PASSWORD funcionam exatamente como em bancos de dados locais, assim como modificando diretamente tabelas de esquema de banco de dados. Para obter informações, consulte Access control and account management na documentação do MySQL.

    Você também pode usar a autenticação de banco de dados do IAM. Com a autenticação de banco de dados do IAM, é possível autenticar sua instância de banco de dados usando um usuário do IAM ou uma função do IAM e um token de autenticação. Um token de autenticação é um valor exclusivo, gerado usando o processo de assinatura Signature Version 4. Ao usar a autenticação de banco de dados do IAM, você pode usar as mesmas credenciais para controlar o acesso aos seus recursos e bancos de dados da AWS. Para obter mais informações, consulte Autenticação do banco de dados do IAM para MySQL e PostgreSQL.

Quando você cria uma instância de banco de dados do Amazon RDS, o usuário mestre apresenta os seguintes privilégios padrão:

  • alter

  • alter routine

  • create

  • create routine

  • create temporary tables

  • create user

  • create view

  • delete

  • drop

  • event

  • execute

  • grant option

  • index

  • insert

  • lock tables

  • process

  • references

  • replication client

  • replication slave (MySQL 5.6 and later)

  • select

  • show databases

  • show view

  • trigger

  • update

nota

Embora seja possível excluir o usuário mestre na instância de banco de dados, isso não é recomendado. Para recriar o usuário mestre, use a operação da API do RDS ModifyDBInstance ou o comando da AWS CLI modify-db-instance e especifique uma nova senha de usuário mestre com o parâmetro apropriado. Se o usuário mestre não existir na instância, ele será criado com a senha especificada.

Para fornecer serviços de gerenciamento para cada instância de banco de dados, o usuário rdsadmin é criado quando a instância de banco de dados é criada. Tentar descartar, renomear ou alterar a senha, ou alterar os privilégios da conta rdsadmin resultará em um erro.

Para permitir o gerenciamento da instância de banco de dados, os comandos kill e kill_query padrão foram restritos. Os comandos do Amazon RDS rds_kill e rds_kill_query são fornecidos para permitir encerrar sessões ou consultas de usuários em instâncias de banco de dados.

Usar o plug-in de validação de senha

O MySQL fornece o plug-in validate_password para maior segurança. O plug-in impõe políticas de senha usando parâmetros no grupo de parâmetro de banco de dados para sua instância de banco de dados do MySQL. O plug-in tem suporte para instâncias de banco de dados que executam o MySQL versão 5.6, 5.7 e 8.0. Para obter mais informações sobre o plug-in validate_password, consulte The Password Validation Plugin na documentação do MySQL.

Para habilitar o plug-in validate_password para uma instância de banco de dados do MySQL

  1. Conecte-se à instância de banco de dados do MySQL e execute o comando a seguir.

    INSTALL PLUGIN validate_password SONAME 'validate_password.so';
  2. Configure os parâmetros para o plug-in no grupo de parâmetros de banco de dados usado pela instância de banco de dados.

    Para obter mais informações sobre os parâmetros, consulte Password Validation Plugin options and variables na documentação do MySQL.

    Para obter informações sobre como modificar parâmetros de instâncias de banco de dados, consulte Modificar parâmetros em um grupo de parâmetros de banco de dados.

Depois de instalar e habilitar o plug-in password_validate, redefina as senhas existentes para que elas estejam em conformidade com suas novas políticas de validação.

O Amazon RDS não valida senhas. A instância do banco de dados do MySQL executa a validação de senha. Se você definir uma senha de usuário com o Console de gerenciamento da AWS, o comando da AWS CLI modify-db-instance ou a operação da API do RDS ModifyDBInstance, a alteração poderá ser bem-sucedida mesmo que a nova senha não atenda às suas políticas de senha. No entanto, uma nova senha será definida na instância de banco de dados do MySQL somente se atender às políticas de senha. Nesse caso, o Amazon RDS registra o seguinte evento.

"RDS-EVENT-0067" - An attempt to reset the master password for the DB instance has failed.

Para obter mais informações sobre eventos do Amazon RDS, consulte Usar a notificação de evento do Amazon RDS.

Uso do SSL com uma instância de banco de dados MySQL

O Amazon RDS oferece suporte a conexões de Secure Sockets Layer (SSL) com instâncias de banco de dados que executam o mecanismo de banco de dados do MySQL.

O Amazon RDS cria um certificado SSL e instala o certificado na instância de banco de dados quando o Amazon RDS provisionar a instância. Esses certificados são assinados por uma autoridade de certificado. O certificado SSL inclui o endpoint da instância de banco de dados como o nome comum (CN) do certificado SSL para se proteger contra ataques de falsificação.

Um certificado SSL criado pelo Amazon RDS é a entidade raiz confiável e deve funcionar na maioria dos casos, mas poderá falhar se o seu aplicativo não aceitar cadeias de certificados. Se o aplicativo não aceitar cadeias de certificados, talvez seja necessário usar um certificado intermediário para se conectar à região da AWS. Por exemplo, você deve usar um certificado intermediário para se conectar à Região AWS GovCloud (Oeste dos EUA) usando o SSL.

Para obter informações sobre como fazer download de certificados, consulte Usar o SSL/TLS para criptografar uma conexão com uma instância de banco de dados. Para obter mais informações sobre como usar o SSL com o MySQL, consulte Atualizar aplicações para conexão com instâncias de banco de dados MySQL usando novos certificados SSL/TLS.

O MySQL usa a yaSSL para conexões confiáveis nas seguintes versões:

  • MySQL versão 5.7.19 e versões 5.7 anteriores

  • MySQL versão 5.6.37 e versões 5.6 anteriores

  • MySQL versão 5.5.57 e versões 5.5 anteriores

O MySQL usa a OpenSSL para conexões confiáveis nas seguintes versões:

  • MySQL versão 8.0

  • MySQL versão 5.7.21 e versões 5.7 posteriores

  • MySQL versão 5.6.39 e versões 5.6 posteriores

  • MySQL versão 5.5.59 e versões 5.5 posteriores

O Amazon RDS para MySQL oferece suporte ao Transport Layer Security (TLS) nas versões 1.0, 1.1 e 1.2. A tabela a seguir mostra o suporte a TLS para as versões do MySQL.

Versão do MySQL TLS 1.0 TLS 1.1 TLS 1.2

MySQL 8.0

Compatível

Compatível

Compatível

MySQL 5.7

Compatível

Compatível

Compatível com MySQL 5.7.21 e versões posteriores

MySQL 5.6

Compatível

Compatível com MySQL 5.6.46 e versões posteriores

Compatível com MySQL 5.6.46 e versões posteriores

MySQL 5.5

Compatível

Não suportado

Não suportado

Para criptografar conexões usando o cliente mysql padrão, inicie o cliente mysql usando o parâmetro --ssl-ca para referenciar a chave pública, conforme mostrado nos exemplos a seguir.

O exemplo a seguir mostra como iniciar o cliente usando o parâmetro --ssl-ca para o MySQL 5.7 e versões posteriores.

mysql -h myinstance.c9akciq32.rds-us-east-1.amazonaws.com --ssl-ca=[full path]rds-combined-ca-bundle.pem --ssl-mode=VERIFY_IDENTITY

O exemplo a seguir mostra como iniciar o cliente usando o parâmetro --ssl-ca para o MySQL 5.6 e versões anteriores.

mysql -h myinstance.c9akciq32.rds-us-east-1.amazonaws.com --ssl-ca=[full path]rds-combined-ca-bundle.pem --ssl-verify-server-cert

Você pode exigir conexões SSL para determinadas contas de usuários. Por exemplo, você pode usar uma das seguintes instruções (dependendo da sua versão do MySQL) para exigir conexões SSL na conta de usuário encrypted_user.

Para o MySQL 5.7 e versões posteriores, use a seguinte instrução.

ALTER USER 'encrypted_user'@'%' REQUIRE SSL;

Para o MySQL 5.6 e versões anteriores, use a seguinte instrução.

GRANT USAGE ON *.* TO 'encrypted_user'@'%' REQUIRE SSL;

Para obter mais informações sobre conexões SSL com MySQL, consulte Using encrypted connections na documentação do MySQL.

Usar memcached e outras opções com MySQL

A maioria dos mecanismos de banco de dados do Amazon RDS oferece suporte a grupos de opções que permitem selecionar recursos adicionais para a sua instância de banco de dados. As instâncias de banco de dados no MySQL versão 5.6 e posterior oferecem suporte para a opção memcached, um cache simples baseado em chaves. Para obter mais informações sobre memcached e outras opções, consulte Opções para instâncias de bancos de dados MySQL. Para mais informações sobre como trabalhar com grupos de opções, consulte Trabalhar com grupos de opções.

Aquecimento de cache do InnoDB

O aquecimento de cache do InnoDB pode fornecer ganhos de desempenho para sua instância de banco de dados do MySQL salvando o estado atual do grupo de buffer quando a instância de banco de dados é desativada e, em seguida, recarregando o grupo de buffer a partir das informações salvas quando a instância do banco de dados for iniciada. Isso dispensa a necessidade de o grupo de buffer "aquecer" do uso normal de banco de dados e, em vez disso, pré-carrega o grupo de buffer com as páginas para consultas comuns conhecidas. O arquivo que armazena as informações do pool de buffer salvo armazena apenas os metadados para as páginas que estão no pool de buffer, e não as páginas propriamente ditas. Como resultado, o arquivo não requer muito espaço de armazenamento. O tamanho do arquivo é de aproximadamente 0,2 por cento do tamanho do cache. Por exemplo, para um cache de 64 GiB, o tamanho do arquivo de aquecimento do cache é de 128 MiB. Para obter mais informações sobre o aquecimento de cache do InnoDB, consulte Saving and restoring the buffer pool state na documentação do MySQL.

O MySQL no Amazon RDS oferece suporte ao aquecimento de cache do InnoDB para o MySQL versão 5.6 e posterior. Para habilitar o aquecimento de cache do InnoDB, defina os parâmetros innodb_buffer_pool_dump_at_shutdown e innodb_buffer_pool_load_at_startup como 1 no parameter group da sua instância de banco de dados. Mudar esses valores de parâmetro em um parameter group afetará todas as instâncias de banco de dados MySQL que usam esse parameter group. Para habilitar o aquecimento de cache do InnoDB para instâncias específicas de banco de dados MySQL, talvez você precise criar um parameter group nessas instâncias. Para obter informações sobre parameter groups, consulte Como trabalhar com grupos de parâmetros de banco de dados.

O aquecimento de cache do InnoDB fornece principalmente um benefício de desempenho para instâncias de banco de dados que usam armazenamento padrão. Se você usar o armazenamento PIOPS, não perceberá um benefício significativo de desempenho normalmente.

Importante

Se sua instância de banco de dados MySQL não for encerrada normalmente, como durante um failover, o estado do pool de buffers não será salvo no disco. Nesse caso, o MySQL carrega qualquer arquivo de grupo de buffer disponível quando a instância de banco de dados for reiniciada. Não há problema, mas o grupo de buffer restaurado pode não refletir o estado mais recente do grupo de buffer antes do reinício. Para garantir que você tenha um estado recente do grupo de buffer disponível para aquecer o cache do InnoDB na inicialização, recomendamos que você descarte periodicamente o grupo de buffer "sob demanda". Você pode despejar ou carregar o pool de buffers sob demanda se a sua instância de banco de dados estiver executando o MySQL versão 5.6.19 ou posterior.

Você pode criar um evento para descartar o grupo de buffer automaticamente e em um intervalo regular. Por exemplo, a seguinte declaração cria um evento chamado periodic_buffer_pool_dump que descarta o grupo de buffer de hora em hora.

CREATE EVENT periodic_buffer_pool_dump ON SCHEDULE EVERY 1 HOUR DO CALL mysql.rds_innodb_buffer_pool_dump_now();

Para obter mais informações sobre eventos do MySQL, consulte Event syntax na documentação do MySQL.

Como descartar e carregar o grupo de buffer sob demanda

Para o MySQL versão 5.6.19 e posterior, você pode salvar e carregar o cache do InnoDB "sob demanda".

Fuso horário local para instâncias de banco de dados MySQL

Por padrão, o fuso horário de uma instância de banco de dados MySQL do RDS é o Tempo Universal Coordenado (UTC). Você pode definir o fuso horário de sua instância de banco de dados como o fuso horário local de seu aplicativo.

Para definir o fuso horário local de uma instância de banco de dados, defina o parâmetro time_zone no parameter group para sua instância de banco de dados como um dos valores compatíveis listados posteriormente nesta seção. Quando você configura o parâmetro time_zone para um grupo de parâmetros, todas as instâncias de banco de dados e as réplicas de leitura que estiverem usando esse grupo de parâmetros mudarão para usar o novo fuso horário local. Para obter informações sobre como configurar parâmetros em um parameter group, consulte Como trabalhar com grupos de parâmetros de banco de dados.

Após definir o fuso horário local, todas as novas conexões ao banco de dados refletirão a alteração. Se você tiver conexões abertas em seu banco de dados quando mudar o fuso horário local, você não verá a atualização do fuso horário local até que encerre a conexão e abra uma nova conexão.

É possível definir um fuso horário local diferente para uma instância de banco de dados e uma ou mais de suas réplicas de leitura. Para fazer isso, use um parameter group diferente para a instância de banco de dados e a(s) replica(s), e defina o parâmetro time_zone em cada parameter group para um fuso horário local diferente.

Se você estiver replicando entre regiões da AWS, a instância de banco de dados de origem e a réplica de leitura usarão grupos de parâmetros diferentes (os grupos de parâmetros são exclusivos de cada região da AWS). Para usar o mesmo fuso horário local a cada instância, é necessário configurar o parâmetro time_zone nos grupos de parâmetros da instância e da réplica de leitura.

Quando você restaura uma instância de banco de dados de um snapshot de banco de dados, o fuso horário local é definido como UTC. Você pode atualizar o fuso horário para o fuso horário local após a conclusão da restauração. Se você restaurar uma instância de banco de dados para um período específico, o fuso horário local para a instância de banco de dados restaurada representará a configuração de fuso horário do parameter group da instância de banco de dados restaurada.

Você pode definir seu fuso horário local para um dos seguintes valores.

Africa/Cairo

Asia/Bangkok

Australia/Darwin

Africa/Casablanca

Asia/Beirut

Australia/Hobart

Africa/Harare

Asia/Calcutta

Australia/Perth

Africa/Monrovia

Asia/Damascus

Australia/Sydney

Africa/Nairobi

Asia/Dhaka

Brazil/East

Africa/Tripoli

Asia/Irkutsk

Canada/Newfoundland

Africa/Windhoek

Asia/Jerusalem

Canada/Saskatchewan

America/Araguaina

Asia/Kabul

Europe/Amsterdam

America/Asuncion

Asia/Karachi

Europe/Athens

America/Bogota

Asia/Kathmandu

Europe/Dublin

America/Caracas

Asia/Krasnoyarsk

Europe/Helsinki

America/Chihuahua

Asia/Magadan

Europe/Istanbul

America/Cuiaba

Asia/Muscat

Europe/Kaliningrad

America/Denver

Asia/Novosibirsk

Europe/Moscow

America/Fortaleza

Asia/Riyadh

Europe/Paris

America/Guatemala

Asia/Seoul

Europe/Prague

America/Halifax

Asia/Shanghai

Europe/Sarajevo

America/Manaus

Asia/Singapore

Pacific/Auckland

America/Matamoros

Asia/Taipei

Pacific/Fiji

America/Monterrey

Asia/Tehran

Pacific/Guam

America/Montevideo

Asia/Tokyo

Pacific/Honolulu

America/Phoenix

Asia/Ulaanbaatar

Pacific/Samoa

America/Santiago

Asia/Vladivostok

US/Alaska

America/Tijuana

Asia/Yakutsk

US/Central

Asia/Amman

Asia/Yerevan

US/Eastern

Asia/Ashgabat

Atlantic/Azores

US/East-Indiana

Asia/Baghdad

Australia/Adelaide

US/Pacific

Asia/Baku

Australia/Brisbane

UTC

Problemas conhecidos e limitações para o MySQL no Amazon RDS

Existem alguns problemas e limitações conhecidos de se trabalhar com o MySQL no Amazon RDS. Para obter mais informações, consulte Problemas conhecidos e limitações para o MySQL no Amazon RDS.