Importar dados de um banco de dados externo do MySQL para uma instância de banco de dados do Amazon RDS para MySQL.
Também é possível importar dados de um banco de dados MySQL ou MariaDB existente para uma instância de banco de dados do RDS para MariaDB ou do RDS para MySQL. Para isso, copie o banco de dados com mysqldumpmysqldump
é comumente usado para fazer backups e transferir dados de um servidor MariaDB ou MySQL para outro. Ele está incluído no software cliente MySQL e MariaDB.
No MariaDB 10.5, o cliente é chamado de mariadb-dumpmariadb-dump
em vez de mysqldump
.
nota
Se você estiver importando ou exportando grandes volumes de dados com uma instância de banco de dados do MySQL, será mais confiável e mais rápido mover dados para dentro e para fora do Amazon RDS usando arquivos de backup xtrabackup
e o Amazon S3. Para ter mais informações, consulte Restaurar um backup em uma instância de banco de dados do Amazon RDS para MySQL.
O Amazon RDS não é compatível com xtrabackup
para MariaDB ou mariabackup
. O Amazon RDS é compatível somente com a importação do Amazon S3 para MySQL.
Um comando mysqldump
típico para mover dados de um banco de dados externo para uma instância de banco de dados do Amazon RDS é semelhante ao exemplo a seguir. Substitua os valores por suas próprias informações. Para o MariaDB 11.0.1 e versões posteriores, substitua mysqldump
por mariadb-dump
e mysql
por mariadb
.
mysqldump -u
local_user
\ --databasesdatabase_name
\ --single-transaction \ --compress \ --order-by-primary \ --routines=0 \ --triggers=0 \ --events=0 \ -plocal_password
| mysql -uRDS_user
\ --port=port_number
\ --host=host_name
\ -pRDS_password
Importante
Não deixe um espaço entre a opção -p
e a senha inserida.
Faz parte das práticas recomendadas de segurança especificar credenciais diferentes dos prompts mostrados neste exemplo.
Analise as seguintes recomendações e considerações:
-
Exclua os seguintes esquemas do arquivo de despejo:
-
sys
-
performance_schema
-
information_schema
O utilitário
mysqldump
emariadb-dump
exclui esses esquemas por padrão. -
-
Para migrar usuários e privilégios, considere o uso de uma ferramenta que gera a linguagem de controle de dados (DCL) para recriá-los, como o utilitário pt-show-grants
. -
Para realizar a importação, verifique se o usuário que está fazendo isso tem acesso à instância de banco de dados. Para obter mais informações, consulteControlar acesso com grupos de segurança
Os parâmetros utilizados são os seguintes:
-
-u
: use para especificar um nome do usuário. Ao usar esse parâmetro pela primeira vez, especifique o nome de uma conta de usuário no banco de dados local MariaDB ou MySQL que você identifica com o parâmetrolocal_user
--databases
. -
--databases
: use para especificar o nome do banco de dados na instância do MySQL ou MariaDB local que você deseja importar para o Amazon RDS.database_name
-
--single-transaction
– use para garantir que todos os dados carregados do banco de dados local sejam consistentes com um único ponto no tempo. Se houver outros processos alterando os dados enquanto eles são lidos pormysqldump
, usar esse parâmetro ajudará a manter a integridade dos dados. -
--compress
– use para reduzir o consumo de largura de banda da rede, compactando os dados do banco de dados local antes de os enviar para o Amazon RDS. -
--order-by-primary
– use para reduzir o tempo de carregamento, ordenando os dados de cada tabela de acordo com a chave primária. -
--routines
: use se houver determinadas rotinas, como funções ou procedimentos armazenados, no banco de dados que você está copiando. Defina o parâmetro como0
, o que exclui as rotinas durante o processo de importação. Depois, recrie manualmente as rotinas no banco de dados do Amazon RDS. -
--triggers
: use se houver gatilhos no banco de dados que você está copiando. Defina o parâmetro como0
, o que exclui os gatilhos durante o processo de importação. Depois, recrie manualmente os gatilhos no banco de dados do Amazon RDS. -
--events
: use se houver eventos no banco de dados que você está copiando. Defina o parâmetro como0
, o que exclui os eventos durante o processo de importação. Em seguida, recrie manualmente os eventos no banco de dados do Amazon RDS. -
-p
: use para especificar uma senha. Ao usar esse parâmetro pela primeira vez, especifique a senha da conta de usuário que você identifica com o primeiro parâmetrolocal_password
-u
. -
-u
: use para especificar um nome do usuário. Ao usar esse parâmetro pela segunda vez, especifique o nome de uma conta de usuário no banco de dados padrão para a instância de banco de dados MariaDB ou MySQL que você identifica com o parâmetroRDS_user
--host
. -
--port
: use para especificar a porta da sua instância de banco de dados MariaDB ou MySQL. Por padrão, essa porta é 3306, a menos que você tenha alterado o valor ao criar a instância de banco de dados.port_number
-
--host
: use para especificar o nome do Sistema de Nome de Domínio (DNS) do endpoint da instância de banco de dados Amazon RDS, por exemplo,host_name
myinstance.123456789012.us-east-1.rds.amazonaws.com
. Você pode encontrar o valor do endpoint nos detalhes da instância do banco de dados no console do Amazon RDS. -
-p
: use para especificar uma senha. Na segunda utilização desse parâmetro, você especifica a senha da conta de usuário identificada pelo segundo parâmetroRDS_password
-u
.
Certifique-se de criar procedimentos armazenados, acionadores, funções ou eventos manualmente no seu banco de dados Amazon RDS. Se algum desses objetos estiver no banco de dados que você está copiando, exclua-os quando executar mysqldump
ou mariadb-dump
. Para fazer isso, inclua os seguintes parâmetros com o comando mysqldump
ou mariadb-dump
:
-
--routines=0
-
--triggers=0
-
--events=0
Exemplo
O exemplo a seguir copia o banco de dados de exemplo world
no host local para uma instância de banco de dados do RDS para MySQL. Substitua os valores por suas próprias informações. Para copiar o banco de dados de exemplo para uma instância de banco de dados do RDS para MariaDB, substitua mysqldump
por mariadb-dump
e mysql
por mariadb
.
Para Linux, macOS ou Unix:
sudo mysqldump -u
local_user
\ --databasesworld
\ --single-transaction \ --compress \ --order-by-primary \ --routines=0 \ --triggers=0 \ --events=0 \ -plocal_password
| mysql -urds_user
\ --port=3306
\ --host=my_instance.123456789012.us-east-1.rds.amazonaws.com
\ -pRDS_password
Para Windows:
Execute o comando a seguir em um prompt de comando que foi aberto clicando com o botão direito do mouse em Prompt de comando no menu de programas do Windows e escolhendo Executar como administrador. Substitua os valores por suas próprias informações. Para copiar o banco de dados de exemplo para uma instância de banco de dados do RDS para MariaDB, substitua mysqldump
por mariadb-dump
e mysql
por mariadb
.
mysqldump -u
local_user
^ --databasesworld
^ --single-transaction ^ --compress ^ --order-by-primary ^ --routines=0 ^ --triggers=0 ^ --events=0 ^ -plocal_password
| mysql -uRDS_user
^ --port=3306
^ --host=my_instance.123456789012.us-east-1.rds.amazonaws.com
^ -pRDS_password
nota
Faz parte das práticas recomendadas de segurança especificar credenciais diferentes dos prompts mostrados no exemplo.