Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Migrar dados do MySQL usando mysqldump

Última atualização: Jul 15, 2026

O mysqldump exporta o esquema e os dados de um banco de dados como um arquivo SQL com instruções CREATE TABLE e INSERT e reproduz esse arquivo na instância de destino. Use este método quando o volume de dados for pequeno ou quando sua empresa puder tolerar tempo de inatividade prolongado durante a migração.

Para migrar sem interrupções de service, use o Data Transmission Service (DTS) . O DTS oferece suporte a replicação contínua e transição com tempo de inatividade mínimo.

Pré-requisitos

Antes de começar, verifique se você:

  • Configurou uma lista de permissões de endereços IP para a instância rds

  • Obteve o endpoint público da instância rds

  • Crie os bancos de dados e as contas de destino na instância rds

Para obter instruções de configuração, consulte Fluxo de trabalho geral para usar o ApsaraDB RDS for MySQL.

Casos de uso

O mysqldump é a escolha adequada quando:

  • O volume de dados é pequeno — a exportação e a importação são concluídas dentro da janela de manutenção

  • O tempo de inatividade é aceitável — as gravações no banco de dados de source devem parar durante a exportação para garantir a consistência

  • Não há necessidade de replicação contínua — uma cópia lógica única é suficiente

Use o DTS se precisar de transição com tempo de inatividade zero ou replicação contínua.

Observações de uso

Após a migração, todos os nomes de tabelas da instância MySQL autogerenciada ficam armazenados em letras minúsculas na instância rds. Para preservar nomes de tabelas que diferenciam maiúsculas de minúsculas, use um dos seguintes métodos:

Aviso

Após definir lower_case_table_names como 0, não o altere de volta para 1. Essa ação pode acionar o erro ERROR 1146 (42S02): Table doesn't exist e afetar seriamente suas cargas de trabalho. Se sua instância rds executar o MySQL 8.0, não será possível reconfigurar o parâmetro lower_case_table_names após a criação da instância.

Migrar dados com mysqldump

As etapas a seguir usam um ambiente Linux. Os mesmos comandos funcionam no Terminal do macOS ou no Prompt de Comando do Windows.

Etapa 1: Exportar dados da instância MySQL autogerenciada

Importante

Interrompa todas as gravações no banco de dados de source antes de executar a exportação. Atualizar dados durante a exportação pode corromper o arquivo de dump.

A conta usada para a exportação deve ter as permissões necessárias. Para mais informações, consulte a documentação oficial do MySQL.

Exportar esquema e dados (excluindo procedimentos armazenados, gatilhos e funções):

mysqldump -h 127.0.0.1 -u user -p --opt --default-character-set=utf8 --hex-blob <db_name> --skip-triggers --skip-lock-tables > /tmp/<db_name>.sql

Exemplo:

mysqldump -h 127.0.0.1 -u user -p --opt --default-character-set=utf8 --hex-blob testdb --skip-triggers --skip-lock-tables > /tmp/testdb.sql
Para exportar dados de uma instância RDS for MySQL, substitua o host, o nome de usuário e o nome do banco de dados pelos valores correspondentes do rds.
A flag --default-character-set=utf8 define o conjunto de caracteres do arquivo de dump. Se o banco de dados de source usar um conjunto de caracteres diferente, configure essa flag para corresponder a ele. A incompatibilidade entre o conjunto de caracteres do arquivo de dump e o da instância de destino causa texto ilegível após a importação.

Exportar procedimentos armazenados, gatilhos e funções:

mysqldump -h 127.0.0.1 -u user -p --opt --default-character-set=utf8 --hex-blob <db_name> -R | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/*/' > /tmp/<db_name>Trigger.sql

Exemplo:

mysqldump -h 127.0.0.1 -u user -p --opt --default-character-set=utf8 --hex-blob testdb -R | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > /tmp/testdbTrigger.sql
Ignore este comando se o banco de dados de source não tiver procedimentos armazenados, gatilhos ou funções.

Etapa 2: Carregar os arquivos exportados para uma instância ECS

Carregue os arquivos .sql da Etapa 1 no diretório /tmp de uma instância Elastic Compute Service (ECS) que tenha acesso à instância rds.

result

Ignore esta etapa se a instância MySQL autogerenciada já estiver em execução em uma instância ECS.

Etapa 3: Importar os arquivos para a instância rds

Execute os seguintes comandos na instância ECS. Substitua os espaços reservados pelos detalhes de conexão do seu rds.

mysql -h <RDS endpoint> -P <port> -u <account> -p <database> < /tmp/<db_name>.sql
mysql -h <RDS endpoint> -P <port> -u <account> -p <database> < /tmp/<db_name>Trigger.sql

Exemplo:

mysql -h rm-bpxxxxx.mysql.rds.aliyuncs.com -P 3306 -u testuser -p testdb < /tmp/testdb.sql
mysql -h rm-bpxxxxx.mysql.rds.aliyuncs.com -P 3306 -u testuser -p testdb < /tmp/testdbTrigger.sql

Espaço reservado

Descrição

Exemplo

<RDS endpoint>

Endpoint público da instância rds

rm-bpxxxxx.mysql.rds.aliyuncs.com

<port>

Porta da instância rds

3306

<account>

Conta rds (conta privilegiada ou conta padrão com permissões de leitura e gravação)

testuser

<database>

Nome do banco de dados de destino — deve existir previamente na instância rds

testdb

Para criar o banco de dados de destino caso ainda não exista, consulte Gerencie bancos de dados.

Etapa 4: Verifique a migração

Use o DMS para fazer login na instância rds e confirme se as tabelas, as contagens de linhas e os dados estão corretos.

Próximos passos