Por vezes, durante a instalação do MySQL, o utilizador não define a palavra-passe de raiz, pelo que o método unix_socket
é utilizado como autorização. Se esta autorização for utilizada, apenas um superutilizador do sistema ou um utilizador com privilégios sudo será capaz de se autenticar como o utilizador root.
Ao utilizar mysql_secure_installation
, será feita uma tentativa de alterar a palavra-passe e, nesse caso, receberá um erro de mysql SET PASSWORD
has no significance for user'root
'@
'localhost
'. Vamos dizer-lhe como resolver e eliminar este erro.
O nome completo do erro é o seguinte:
SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.
O erro é traduzido como:
"Não faz sentido executar o método SET PASSWORD
para'root
'@
'localhost
' porque o método de autorização selecionado não suporta a gravação de dados de autorização. Se quiser alterar os parâmetros de autorização, utilize ALTER USER
."
O método de autorização unix_socket não guarda palavras-passe, não efectua a autorização através da palavra-passe, verifica se um determinado utilizador cumpre as condições de superutilizador. E não há forma de um utilizador simplesmente saltar a definição da palavra-passe do root (se esta não tiver sido definida). É por isso que o software não permite que prossiga. Pode resolver o problema ligando-se ao MySQL.
Também é necessário alterar o método de autorização e a palavra-passe ao mesmo tempo:
sudo mysql
No ambiente SQL, é necessário executar o seguinte comando:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Fechar o cliente MySQL com o comando:
exit;
Depois de executar mysql_secure_installation
, introduza a palavra-passe de raiz
. Em seguida, pode terminar a configuração sem qualquer problema. Tenha em atenção que, depois disso, poderá ligar-se ao mysql utilizando o sudo sem palavra-passe, porque o método de autorização por palavra-passe está ativado. Para voltar às definições anteriores após a instalação do mysql_secure_installation
, ligue-se ao MySQL.
Utilize a palavra-passe e execute:
ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
E pronto - a instrução está completa.