Importar dados de um banco de dados do MySQL ou do MariaDB para uma instância de banco de dados do RDS para MariaDB ou do RDS para MySQL.
Você também pode importar dados de um banco de dados MariaDB ou MySQL existente para uma instância de banco de dados MySQL ou MariaDB. Faça isso copiando 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.
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 obter mais informações, consulteRestaurar um backup em uma instância de banco de dados do Amazon RDS para MySQL
Um comando mysqldump
típico para mover dados de um banco de dados externo para uma instância de banco de dados Amazon RDS é semelhante ao seguinte:
mysqldump -u
local_user
\ --databasesdatabase_name
\ --single-transaction \ --compress \ --order-by-primary \ -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.
Especifique credenciais diferentes dos prompts mostrados aqui como prática recomendada de segurança.
Analise as seguintes recomendações e considerações:
-
Exclua os seguintes esquemas do arquivo de despejo:
sys
,performance_schema
einformation_schema
. O utilitáriomysqldump
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. No primeiro uso deste parâmetro, você especifica o nome de uma conta de usuário no banco de dados local MariaDB ou MySQL identificado pelo 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.-p
– use para especificar uma senha. Na primeira utilização desse parâmetro, você especifica a senha da conta de usuário identificada pelo primeiro parâmetrolocal_password
-u
.-u
– use para especificar um nome do usuário. Na segunda utilização desse parâmetro, você especifica 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 identificada pelo 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.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 no Console de gerenciamento 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
. Para fazer isso, inclua estes parâmetros em seu comando mysqldump
: --routines=0 --triggers=0
--events=0
.
O exemplo a seguir copia o banco de dados de exemplo world
no host local para uma instância de banco de dados MySQL.
Para Linux, macOS ou Unix:
sudo mysqldump -u
localuser
\ --databasesworld
\ --single-transaction \ --compress \ --order-by-primary \ --routines=0 \ --triggers=0 \ --events=0 \ -plocalpassword
| mysql -urdsuser
\ --port=3306
\ --host=myinstance.123456789012.us-east-1.rds.amazonaws.com
\ -prdspassword
Para o Windows, execute o seguinte comando 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:
mysqldump -u
localuser
^ --databasesworld
^ --single-transaction ^ --compress ^ --order-by-primary ^ --routines=0 ^ --triggers=0 ^ --events=0 ^ -plocalpassword
| mysql -urdsuser
^ --port=3306
^ --host=myinstance.123456789012.us-east-1.rds.amazonaws.com
^ -prdspassword
nota
Especifique credenciais diferentes dos prompts mostrados aqui como prática recomendada de segurança.