Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como fazer backup de todo o banco de dados MySQL com todos os usuários e permissões e senhas?


Basicamente, o comando mysqldump que você pode usar é:

mysqldump -u$user -p$pass -S $socket --all-databases > db_backup.sql

Isso incluirá o banco de dados mysql, que terá todas as tabelas de usuários/privs.

Há desvantagens em executar isso em um sistema de produção, pois pode causar bloqueio. Se suas tabelas forem pequenas o suficiente, isso pode não ter um impacto significativo. Você vai querer testá-lo primeiro.

No entanto, se você estiver executando um ambiente InnoDB puro, poderá usar o --single-transaction sinalizador que criará o dump em uma única transação (obtê-lo), evitando assim o bloqueio no banco de dados. Observe que existem casos de canto em que o FLUSH TABLES inicial comando executado pelo dump pode bloquear as tabelas. Se for esse o caso, mate o dump e reinicie-o. Eu também recomendo que, se você estiver usando isso para fins de backup, use o --master-data sinalizador também para obter as coordenadas do log binário de onde o despejo foi feito. Dessa forma, se você precisar restaurar, poderá importar o arquivo de despejo e usar o mysqlbinlog comando para reproduzir os arquivos de log binários da posição em que esse dump foi obtido.