Poupe 15% em todos os serviços de alojamento

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código: Skills Começar a trabalhar
Secções
Administração Linux Servidores Virtuais

Importação e Exportação de Bancos de Dados MySQL: Um Guia Completo

A gestão eficiente de bases de dados é a espinha dorsal de qualquer aplicação web fiável. Quer esteja a realizar cópias de segurança rotineiras, a migrar dados entre servidores ou a configurar um novo ambiente, saber como importar e exportar bases de dados MySQL é uma competência essencial para todos os programadores e administradores de sistemas.

Este guia abrangente leva-o através de cada método, comando e passo de resolução de problemas que precisa para gerir bases de dados MySQL com confiança — desde a linha de comandos até phpMyAdmin.

Por que as operações de importação e exportação de MySQL são importantes

As exportações e importações de bases de dados MySQL servem vários propósitos críticos:

  • Cópia de segurança e recuperação de desastres — proteja os seus dados contra eliminação acidental ou falha do servidor
  • Migração de servidor — mova bases de dados entre ambientes de alojamento sem perda de dados
  • Desenvolvimento e teste — clone bases de dados de produção para fins de teste
  • Controlo de versão — tire um instantâneo do estado da sua base de dados antes de atualizações importantes da aplicação

Para que estas operações funcionem sem problemas, a sua infraestrutura de alojamento é importante. Um ambiente de Alojamento VPS com armazenamento NVMe, acesso root completo e elevado débito de E/S garante que até mesmo grandes despejo de bases de dados sejam concluídos de forma rápida e fiável.

1. Pré-requisitos: O que precisa antes de começar

Antes de mergulhar em exportações ou importações, confirme que tem o seguinte em vigor:

  • Acesso ao servidor MySQL com privilégios de utilizador suficientes (SELECT, LOCK TABLES, SHOW VIEW, TRIGGER para exportações; CREATE, INSERT, ALTER para importações)
  • Cliente MySQL instalado na sua máquina local ou servidor
  • Um terminal ou cliente SSH para operações de linha de comandos
  • phpMyAdmin (opcional) se preferir uma interface gráfica
  • Espaço em disco suficiente para o ficheiro de despejo .sql, especialmente para bases de dados grandes

> Dica profissional: Se está a gerir múltiplas bases de dados em vários projetos, considere um VPS com cPanel para uma experiência de gestão de bases de dados simplificada e baseada em GUI.

2. Exportação de uma base de dados MySQL

Exportar uma base de dados MySQL gera um ficheiro .sql contendo o esquema completo da base de dados (estrutura) e dados. Este ficheiro pode ser utilizado posteriormente para restaurar ou migrar a sua base de dados.

Método 1: Utilizando a linha de comandos MySQL (mysqldump)

O utilitário mysqldump é a ferramenta mais fiável e amplamente utilizada para exportar bases de dados MySQL. Funciona diretamente a partir do terminal e suporta uma ampla gama de opções.

Passo 1: Abra o seu terminal

Ligue-se ao seu servidor via SSH ou abra uma sessão de terminal local.

Passo 2: Execute o comando mysqldump

mysqldump -u username -p database_name > export_file.sql

Substitua os marcadores de posição da seguinte forma:

Marcador de posiçãoDescrição
usernameO seu nome de utilizador MySQL (por exemplo, root ou um utilizador de BD dedicado)
database_nameO nome da base de dados que deseja exportar
export_file.sqlO nome e caminho desejados para o ficheiro de saída

Passo 3: Introduza a sua palavra-passe MySQL

Será solicitada a introdução da sua palavra-passe. A exportação prosseguirá imediatamente após a autenticação.

Exemplo:

mysqldump -u root -p my_wordpress_db > /home/backups/wordpress_backup_2024.sql

Sinalizadores mysqldump úteis:

# Export all databases
mysqldump -u root -p --all-databases > all_databases.sql

# Export only the database structure (no data)
mysqldump -u root -p --no-data database_name > structure_only.sql

# Compress the output on the fly
mysqldump -u root -p database_name | gzip > export_file.sql.gz

# Export specific tables only
mysqldump -u root -p database_name table1 table2 > partial_export.sql

Método 2: Exportação via phpMyAdmin

phpMyAdmin fornece uma interface gráfica amigável para exportações de bases de dados, ideal para quem prefere não utilizar a linha de comandos.

Passo 1: Inicie sessão no phpMyAdmin

Abra o seu navegador e navegue para a sua instalação phpMyAdmin (por exemplo, https://yourdomain.com/phpmyadmin).

Passo 2: Selecione a sua base de dados

Na barra lateral esquerda, clique na base de dados que deseja exportar.

Passo 3: Navegue para o separador Exportar

Clique no separador Exportar no menu de navegação superior.

Passo 4: Escolha o seu método de exportação

  • Rápido — Exporta toda a base de dados com definições padrão. Adequado para a maioria dos casos de utilização.
  • Personalizado — Permite-lhe selecionar tabelas específicas, formato de saída, compressão e opções adicionais.

Passo 5: Selecione o formato SQL

Certifique-se de que o formato está definido como SQL (o padrão). Também pode escolher CSV, XML ou outros formatos dependendo das suas necessidades.

Passo 6: Clique em Ir

phpMyAdmin irá gerar e descarregar o ficheiro .sql para a sua máquina local.

3. Importação de uma base de dados MySQL

Importar um ficheiro .sql restaura uma base de dados previamente exportada para um servidor MySQL. Este é o método padrão para migrações, restauros e implementações.

Método 1: Utilizando a linha de comandos MySQL

Passo 1: Certifique-se de que a base de dados de destino existe

Antes de importar, a base de dados de destino deve já existir. Se não existir, crie-a:

mysql -u root -p -e "CREATE DATABASE new_database_name;"

Passo 2: Execute o comando de importação

mysql -u username -p database_name < import_file.sql

Substitua os marcadores de posição:

Marcador de posiçãoDescrição
usernameO seu nome de utilizador MySQL
database_nameA base de dados de destino para importar
import_file.sqlO caminho para o seu ficheiro .sql

Exemplo:

mysql -u root -p my_wordpress_db < /home/backups/wordpress_backup_2024.sql

Importação de um ficheiro comprimido:

gunzip < export_file.sql.gz | mysql -u root -p database_name

Passo 3: Verifique a importação

Após a conclusão do comando, inicie sessão no MySQL e verifique os dados:

mysql -u root -p
USE database_name;
SHOW TABLES;

Método 2: Importação via phpMyAdmin

Passo 1: Inicie sessão no phpMyAdmin

Abra phpMyAdmin no seu navegador.

Passo 2: Selecione ou crie a base de dados de destino

  • Se a base de dados já existe, clique nela na barra lateral esquerda.
  • Se não, clique em Bases de dados no menu superior, introduza um novo nome de base de dados e clique em Criar.

Passo 3: Navegue para o separador Importar

Clique no separador Importar no menu de navegação superior.

Passo 4: Escolha o seu ficheiro

Clique em Escolher ficheiro e selecione o ficheiro .sql da sua máquina local.

Passo 5: Configure as definições de importação

  • Conjunto de caracteres: Certifique-se de que corresponde à codificação da sua base de dados (normalmente utf8mb4)
  • Importação parcial: Útil para retomar importações interrompidas
  • Formato: Deve ser definido como SQL automaticamente

Passo 6: Clique em Ir

phpMyAdmin iniciará o processo de importação. Aguarde a mensagem de confirmação de sucesso verde antes de fechar o separador.

> Nota: phpMyAdmin tem um limite de tamanho de ficheiro de carregamento padrão (normalmente 2MB–128MB). Para bases de dados maiores, utilize o método de linha de comandos ou ajuste as definições de PHP conforme descrito na secção de resolução de problemas abaixo.

4. Técnicas avançadas de exportação e importação

Automatização de cópias de segurança MySQL com trabalhos Cron

Para ambientes de produção, as exportações manuais não são suficientes. Automatize as suas cópias de segurança de bases de dados utilizando um trabalho cron:

# Open the crontab editor
crontab -e

# Add this line to run a daily backup at 2:00 AM
0 2 * * * mysqldump -u root -pYourPassword database_name | gzip > /backups/db_$(date +%F).sql.gz

Isto garante que tem sempre uma cópia de segurança recente sem intervenção manual.

Migração de bases de dados entre servidores

Para migrar uma base de dados diretamente de um servidor para outro sem criar um ficheiro intermédio:

mysqldump -u root -p database_name | ssh user@remote_server "mysql -u root -p remote_database"

Isto canaliza a saída de despejo diretamente sobre SSH para a instância MySQL remota — eficiente e rápido num ambiente de Alojamento VPS de alta largura de banda.

Tratamento de bases de dados grandes

Para bases de dados que excedem vários gigabytes, considere estas otimizações:

# Use single-transaction for InnoDB tables (avoids table locks)
mysqldump --single-transaction -u root -p database_name > export.sql

# Disable foreign key checks during import for speed
mysql -u root -p database_name -e "SET foreign_key_checks = 0;"
mysql -u root -p database_name < import_file.sql
mysql -u root -p database_name -e "SET foreign_key_checks = 1;"

5. Resolução de problemas comuns de importação/exportação MySQL

Erro 1049: Base de dados desconhecida

ERROR 1049 (42000): Unknown database 'database_name'

Causa: A base de dados de destino não existe.

Solução: Crie a base de dados antes de importar:

mysql -u root -p -e "CREATE DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

Erro 2002: Não é possível ligar ao servidor MySQL

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

Causa: O serviço MySQL não está em execução ou o caminho do socket está incorreto.

Solução: Verifique e reinicie o serviço MySQL:

# Check MySQL status
sudo systemctl status mysql

# Start MySQL if it's stopped
sudo systemctl start mysql

# For MariaDB
sudo systemctl start mariadb

Erro 1044: Acesso negado

ERROR 1044 (42000): Access denied for user 'username'@'localhost' to database 'database_name'

Causa: O utilizador MySQL não tem privilégios suficientes.

Solução: Conceda as permissões necessárias:

mysql -u root -p
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
FLUSH PRIVILEGES;

Limite de tamanho de ficheiro phpMyAdmin excedido

Causa: O ficheiro .sql excede o limite de carregamento do phpMyAdmin.

Solução: Edite o seu ficheiro de configuração PHP (php.ini):

upload_max_filesize = 256M
post_max_size = 256M
max_execution_time = 600
memory_limit = 512M

Após guardar, reinicie o seu servidor web:

sudo systemctl restart apache2
# or
sudo systemctl restart nginx

Alternativamente, mude para o método de importação de linha de comandos, que não tem restrições de tamanho de ficheiro.

A importação para a meio (Tempo limite)

Causa: As importações grandes excedem os limites de tempo limite de PHP ou MySQL.

Solução: Utilize a linha de comandos para ficheiros grandes ou aumente o tempo limite do MySQL:

SET GLOBAL wait_timeout = 28800;
SET GLOBAL interactive_timeout = 28800;

6. Melhores práticas de segurança para exportações e importações MySQL

Proteger os seus despejos de bases de dados é tão importante quanto criá-los. Siga estas melhores práticas:

  • Encripte despejos sensíveis — Utilize GPG para encriptar ficheiros exportados antes de os armazenar ou transferir:
  gpg --symmetric --cipher-algo AES256 export_file.sql
  • Restrinja as permissões de ficheiro — Certifique-se de que os ficheiros de despejo não são legíveis por todos:
  chmod 600 export_file.sql
  • Utilize utilizadores MySQL dedicados — Evite utilizar root para exportações rotineiras. Crie um utilizador de cópia de segurança com privilégios mínimos necessários.
  • Armazene cópias de segurança fora do servidor — Carregue despejos para uma localização remota ou armazenamento de objetos para proteger contra falhas ao nível do servidor.
  • Proteja a sua ligação — Utilize sempre SSL/TLS para ligações MySQL remotas. Combine isto com um Certificado SSL válido para proteger dados em trânsito.

7. Escolha do ambiente de alojamento correto para operações MySQL

O desempenho das suas operações de importação e exportação MySQL depende muito da sua infraestrutura de alojamento. Eis como diferentes ambientes se comparam:

Tipo de alojamentoMelhor paraDesempenho MySQL
Alojamento Web PartilhadoSites pequenos, tráfego baixoLimitado; recursos partilhados
Alojamento VPS
Administração
Administração Instrução
Administração Instrução