Formas de pagamento Abuse

Corrigir o erro SET PASSWORD não tem significado para o utilizador root@localhost

18.01.2023, 15:34

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.

Eliminar o 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.