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

Não é possível acessar o usuário root do MySql, mesmo após definir a senha através do modo de segurança no terminal linux


Entre como antes na Etapa 2, ou seja, reinicie o daemon mysql no modo de segurança.

Emita o comando
select user,host,password from mysql.user where user='root';

corte e cole a saída em um editor de texto para comparação (dos valores da coluna de senha com hash) antes e depois do seguinte.

Para cada linha, observe o host coluna. No exemplo a seguir, estou assumindo que tenho duas linhas. Uma linha tem % como host, o próximo tem localhost

Para cada linha que tinha um host variação, você emitirá um comando. Então, no meu exemplo acima, eu estaria emitindo 2 comandos no total, como:
SET PASSWORD FOR 'root'@'%' = PASSWORD('MyNewPassword');
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

corre
select user,host,password from mysql.user where user='root';

recorte e cole no editor de texto. Observe a mudança nos hashes de senha.

Desligue o daemon do modo de segurança e reinicie normalmente.

Tente fazer login como root com MyNewPassword

Aqui estão alguns links. Aquele para SET PASSWORD Syntax , e um próximo passo para a GRANT Syntax .

Para o escopo restrito desta questão, que é o login, as concessões não seriam necessárias. Mas sem concessões apropriadas para bancos de dados, alguém ficaria em sandbox, incapaz de fazer muito, além de comandos simples como select now();

Não estou sugerindo que seu usuário root não tenha privilégios depois que a senha for alterada. As concessões são necessárias para que usuários normais tenham certeza.