É possível ter backup completo do servidor de banco de dados mysql a partir da linha de comando?

6
$ mysqldump -h localhost -u username -p database_name > backup_db.sql

Eu posso usar a linha acima, mas é apenas para um banco de dados no servidor, posso ter um backup completo de todos os bancos de dados em um arquivo de backup?

Ou existe algum comando que serialize esse processo?

algo como abaixo (eu adicionei -all o que é mais provavelmente errado):

$ mysqldump -u username -h localhost -p -all | gzip -9 > backup_db.sql.gz

Obrigado.

    
por Sinan 29.06.2009 / 15:14

3 respostas

13

Use a opção --all-databases, isso faz com que todas as tabelas em todos os bancos de dados sejam descartadas:

mysqldump -u username -h localhost -p --all-databases > all_databases.sql
    
por 29.06.2009 / 15:18
4

Além disso, sugiro que você configure um arquivo my.cnf para que sua senha não fique visível na lista de processos. Verifique isso . Ele irá ajudá-lo e impedir que você tenha seu SQL DB invadido por qualquer outra pessoa que possa ter acesso ao seu sistema.

    
por 29.06.2009 / 16:06
1

Eu sugeriria instantâneos do LVM para backups de "todos os bancos de dados", já que o tempo de bloqueio provavelmente será alto. No entanto, a falta exibida de investigar a string de uso ou " man mysql<^M>/all " me faz sentir que pode ser irresponsável fazer tal sugestão.

~$ mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
    
por 29.06.2009 / 19:52