Consulta SQL:
update user set password=PASSWORD("NEWPASSWORD") where User='root' AND Host="127.0.0.1";
update user set password=PASSWORD("NEWPASSWORD") where User='root' AND Host="example.com";
Eu estava olhando para os usuários na minha tabela mysql.user e notei que existem 3 raízes.
root@localhost
[email protected]
[email protected]
Quando descobri isso, nenhuma das raízes era protegida por senha. Eu consegui proteger com senha o root @ localhost, mas não consigo descobrir como proteger os outros dois. Como eu faria isso via linha de comando?
Obrigado por qualquer ajuda.
Eu tenho três (3) precauções para você. Por favor, lembre-se do seguinte:
Precaução 1) Sempre execute FLUSH PRIVILEGES após atualizar o mysql.user. Caso contrário, as alterações não terão efeito até a próxima reinicialização do mysql.
Precaução 2) Se você tiver o log binário ativado, desabilite o log binário em sua sessão. Caso contrário, a senha do mysql ficará visível nos logs binários. Não se preocupe, o log binário está ativado para todas as outras conexões de banco de dados.
SET sql_log_bin = 0;
atualizar senha do conjunto de usuários = PASSWORD ("NEWPASSWORD") em que Usuário = 'root' E Host="127.0.0.1";
atualizar senha do conjunto de usuários = PASSWORD ("NEWPASSWORD") em que Usuário = 'root' E Host="example.com ';
PRIVILÉGIOS DE FLUSH;
Precaução 3) Na versão Linux do mysql, o arquivo /root/.mysql_history registra sua digitação da sessão. A senha também ainda está visível. Edite suas alterações usando o vi.
Para não se preocupar em desativar o registro em log binário para ocultar a senha, isso é o que geralmente faço:
Eu tenho o mysql em execução na área de trabalho do windows. Eu corri o seguinte no MySQL para Windows:
lwdba @ localhost (DB information_schema) :: selecione a senha ('NEWPASSWORD');
+ ------------------------------------------- +
| password ('NEWPASSWORD')
+ ------------------------------------------- +
| * B845F78DCA29B8AE945AB9CFFAC24A9D17EB5063
+ ------------------------------------------- +
1 linha no set (0.00 seg)
Agora, execute isso no MySQL para Linux:
SET sql_log_bin = 0;
update user set password = '* B845F78DCA29B8AE945AB9CFFAC24A9D17EB5063' onde Usuário = 'root' E Host="127.0.0.1";
update user set password = '* B845F78DCA29B8AE945AB9CFFAC24A9D17EB5063' onde Usuário = 'root' E Host="example.com ';
PRIVILÉGIOS DE FLUSH;
Três razões pelas quais isso é mais vantajoso:
Tags root mysql password-protected