Backup no MySQL

Por Cristina Otsuka

Data de Publicação: 27 de Novembro de 2006

Existem inúmeras maneiras de se fazer backup no MySQL. Creio que o modo mais utilizado seja o backup feito pelo comando 'mysqldump', que permite uma combinação enorme de parâmetros.

Em todos os comandos abaixo, substitua as palavras 'usuario', 'senha' e 'arquivo_saida'.

  1. backup de todos os bancos existentes com conteúdo e estrutura (-A equivale a --all-databases):

      $ mysqldump -u usuario
         --password=senha --all-databases > arquivo_saida
    
    OU
      $ mysqldump -u usuario 
        --password=senha -A > arquivo_saida
    

  2. backup só das estruturas de todos os bancos (-d : sem os conteúdos)
      $ mysqldump -u usuario 
        --password=senha -A -d > arquivo_saida
    
  3. backup só dos dados de todos os bancos (-c: usa comandos 'insert'; -t: não escreve comandos 'create table'; -e: gera comandos mais compactos e mais rápidos de 'insert')
      $ mysqldump -u usuario
        --password=senha -c  -t  -e -A > arquivo_saida
    

    Caso você queira especificar o nome de um banco de dados (ou seja, você não quer fazer de todos os bancos existentes) substitua o parâmetro '-A' citado nos exemplos anteriores por:

    --databases DB1 DB2 .... , onde DB1 DB2 ... são os nomes dos bancos de dados

    Exemplo:
      $ mysqldump -u usuario 
        --password=senha -c -t -e --databases DB1 DB2
    
    Caso você queira fazer backup de apenas algumas tabelas de um banco específico:
      $ mysqldump -u usuario
        --password=senha [opções] DB1 [nome das tabelas]
    
    onde DB1 é o nome do banco que você quer.

    Publicado origalmente na Dicas-L em 14 de abril de 2004