Eu gostaria de obter alguns esclarecimentos sobre a --flush-privileges
opção de mysqldump.
Aqui está a descrição da opção nos documentos do MySQL :
--flush-privileges
Send a FLUSH PRIVILEGES statement to the server after dumping the mysql database.
This option should be used any time the dump contains the mysql database and any other
database that depends on the data in the mysql database for proper restoration.
Quando ele diz que envia a instrução de descarga após despejar o banco de dados, eu li isso para significar que os dados, esquema etc. foi despejado ).
Eu queria saber o que despejar os dados, etc. fez que exigisse que os privilégios fossem liberados, então comecei a procurar uma explicação para ter certeza de quando e por que usá-lo.
Ao ler várias respostas, ocorreu-me que faria sentido se a instrução flush estivesse sendo incluída no arquivo de despejo. Depois que o conteúdo do arquivo foi carregado em um banco de dados, a instrução de privilégios de liberação foi executada para atualizar as configurações após a importação das novas informações.
Então, como isso funciona?
A) Liberar o banco de dados de origem após despejar os dados em um arquivo? Se sim, por que isso é necessário?
B) Liberar o banco de dados de destino após importar o conteúdo do arquivo de despejo?
C) Algo diferente das possibilidades que descrevi?
A documentação é enganosa. Eu li exatamente da mesma maneira que você, que não é o que o utilitário faz.
Adicionar
--flush-privileges
faz com que o mysqldump inclua o seguinte no arquivo de backup, depois de despejar o esquema mysql......o que obviamente faz com que o servidor onde o dump está sendo restaurado releia as tabelas de concessões potencialmente alteradas.
E isso é tudo que ele faz.
A confirmação disso pode ser encontrada no código-fonte do mysqldump "10.13" (a versão empacotada com o MySQL Server 5.5.30):
A
using_mysql_db == 0
comparação foi confusa no início, mas acabou sendo o valor de retorno de uma função de comparação de strings em que "0" significa "idêntico".À luz da resposta de Michael-sqlbot , tente manter mais uma coisa em perspectiva.
A única vez que usar
--flush-privileges
é bom para um mysqldump é quando--all-databases
(que inclui omysql
esquema)mysql
apenas o esquema.O que é ainda mais superficial sobre a
--flush-privileges
opção para mysqldump é que você mesmo pode anexar o comando à saída assim:Isso pressupõe que você se importou em se lembrar disso. É por isso que a
--flush-privileges
opção foi adicionada ao mysqldump como um lembrete.