Backup mysql por linha de comando

Mysql ou mysqldump? < ou > ? e restaurar como faz?
Complicado quando falamos em backup de mysql, pois o leque de opções que temos nos confunde em como fazer a coisa funcionar. Falar em mysql, tratamos de 90% dos servidores serem Linux, e para realizarmos algumas atuações é bem interessante que tenhamos conhecimento de comandos (pelo menos os mais básicos) de Linux.
Poucos entendem a sintaxe de um backup e menos ainda a diferença entre um backup e um restore. Para realizar um backup, temos as opções:

> mysqldump -uroot -p -database > arquivo_de_backup.bak
> password:

O comando mysqldump realiza um dump na base, criando um lock para que o backup seja executado com integridade.

os parâmetros -u indica o user responsável por criar o dump. -p a senha do mesmo (sua senha pode ser digitada a frente do -p, mas por questões de segurança, optamos por digita-la depois) e o sinal > indica que o arquivo recebera os dados daquele respectivo database.

para restore, podemos usar as opções de comando Mysql. Para restore, temos o seguinte comando:

>mysql -uroot -p database < arquivo_de_backup.bak
> password:

Existe também a opção ‘force’, que pode ser adicionada a linha de comando, como um -f, ou seja:

>mysql -uroot -p -f database < arquivo_de_backup
>password:

Existem diversos parâmetros para serem avaliados, por exemplo: backup de todas as bases utilize o parâmetro -A , ou seja, execute:

> mysqldump -uroot -p -A > arquivo_de_backup.bak
>password:

Para travar completamente enquanto o backup e feito e garantir que ninguém acesse e altere nada, utilize a opção -x. E se quiser, ao rodar o bakup já otimiza-lo combinando os comandos INSERT tornando o backup e o restore mais rápido, utilize a opção -e.

> mysqldump -uroot -p -x -e -A > arquivo_de_backup.bak
> password:

O ideal quando formos restaurar, é apagarmos a base antiga, e subir o backup full em cima dela. Mas vale lembrar que: um restore só pode ocorrer se a base existir. Então, caso realize o drop, recrie o database com o mesmo nome para poder restaurar o arquivo de backup !
São diversos parâmetros, tratei apenas alguns aqui (os que mais uso!). Há diversos sites que explicam mais comandos a serem usados.

Quando trabalhamos em ambientes mysql é bem interessante que se aprenda pelo menos um básico de Linux !

Espero que tenha ajudado!
Até mais! =)

3 comentários sobre “Backup mysql por linha de comando

  1. Olá boa noite.
    Tenho o seguinte retorno quando tento restaurar uma tabela específica de uma base.

    ERROR 1005 (HY000) at line 2: Can’t create table ‘./jetcontrol/balance.frm’ (errno: -1)

    Situação: Tinha um tabela chamada “balances” que estava dando problemas. Removi os arquivos .ibd e .frm referente a tabela para tentar recriar a mesma através de um schema original da mesma tabela (o schema da tabela está com a estrutura perfeita).

    O que pode ser este erro?

    • Fala Sanuel, tudo bom?
      Como você está tentando recriar esta tabela? Consegue disponibilizar a sintaxe pra dar uma olhada?
      E tem alguma FK ? Nesta tabela? Se sim envia o script dela também para que possa ajudar.

      Abs.

Deixe um comentário