Obter logins e senhas no MySQL

Ola pessoal,

Ao efetuar uma migração no MySQL, no momento do restore podemos nos deparar com erros referentes ao definer setado nos objetos das bases, seja Views, Procedures ou Triggers.

Exemplo do erro:

A cada nova versão, o banco interno do MySQL sofre alterações de estrutura, e não é recomendável restaurar o banco mysql obtido em uma versão 5.1 direto no 5.6 ou 5.7 por exemplo. Neste caso, executo um script no shell para obter a relação dos usuários, já com a senha criptografada junto as permissões. Segue:

Um exemplo do conteúdo deste script:

Vantagem: Caso o usuário não exista, o próprio comando GRANT já vai cria-lo junto as permissões que estejam sendo passadas e com a senha criptografada, e também seguindo os padrões na tabela MySQL user de cada versão do MySQL. Esse método de criação é muito valido para replicar usuários em clusters, replicações entre outros.

Se o usuário existir, o comando ira apenas acrescentar as permissões ou alterar a senha, caso o hash esteja diferente da atual. Para criar os usuários, basta levar o arquivo .sql para o servidor de destino, e exporta-lo no banco:

Encontrei a muito tempo este script em fóruns, e você pode adapta-lo facilmente no select, filtrando por usuários específicos, ignorando o usuário root, enfim, fica de acordo a sua necessidade.

Claro que existem varias outras formas de obter esta relação, caso queira compartilha-la, basta informar nos comentários :D.

Um abraço ao leitor Claudeir, que tirou esta dúvida nos comentários do post sobre a Migração de bases MySQL

É isso ai pessoal.

Dúvidas, criticas ou sugestões? Fiquem a vontade, todo retorno é construtivo 🙂

Jose Wilson

2 Replies to “Obter logins e senhas no MySQL”

  1. Muito bom post, extremamente útil e relevante, só quem já se deparou com problemas na hora de migração com mudança de versão sabe como esse post é útil.

Deixe uma resposta