.
Obtendo o erro: “Falha! Erro: SET PASSWORD não tem significado para o usuário ‘root’@’localhost”? Em seguida, leia as etapas aqui para corrigi-lo.
Quando você executar o mysql_secure_installation
comando na janela do seu terminal, ele solicitará que você insira a senha root e configure as opções de segurança para a instalação do MySQL.
Mas quando você tenta definir uma senha para a conta root, você recebe a seguinte mensagem de erro na tela: Fracassado! Erro: SET PASSWORD não tem significado para o usuário ‘root’@’localhost’ pois o método de autenticação usado não armazena dados de autenticação no servidor MySQL. Considere usar ALTER USER se desejar alterar os parâmetros de autenticação.
Esse erro geralmente ocorre quando você tenta definir uma senha para a conta root. Isso ocorre porque o mecanismo padrão para a conta root mysql é “auth_socket”, que usa as informações do usuário do sistema em vez de uma senha.
Aqui está uma pequena informação do Documentação do MySQL sobre como auth_sockets funciona.
O
auth_socket
plugin verifica se o nome de usuário do soquete corresponde ao nome de usuário do MySQL especificado pelo programa cliente para o servidor. Se os nomes não corresponderem, o plug-in também verifica se o nome de usuário do soquete corresponde ao nome especificado noauthentication_string
coluna domysql.user
linha da tabela. Se for encontrada uma correspondência, o plug-in permite a conexão.
Para corrigir isso, você pode alterar o método de autenticação da conta root para usar uma senha em vez de auth_socket substituindo auth_socket por mysql_native_password ou caching_sha2_password .
Etapas para corrigir: Falha! Erro: SET PASSWORD não tem significado para o usuário ‘root’@’localhost
As etapas são bem simples; você só precisa executar alguns comandos e o problema será resolvido com certeza.
Inicie o MySQL
Eu acredito que você pode estar preso com a janela onde está pedindo uma senha. Nesse caso, feche esse terminal e abra um novo onde você possa executar os comandos novamente.
Depois de abrir um novo terminal, digite o seguinte comando para iniciar o MySQL com privilégios de sudo:
$ sudo mysql
Alterar Autenticação
Em seguida, você precisa usar o ALTER USER
comando para alterar o parâmetro de autenticação de auth_socket para mysql_native_password ou caching_sha2_password executando o comando abaixo:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'SET_PASSWORD';
#OR
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'SET_PASSWORD';
O comportamento do comando é mostrado abaixo:
Assim que receber a mensagem “Query OK”, feche o mysql .
mysql> exit
Depois de fazer as seguintes alterações, agora você pode usar o mysql_secure_installation script para o cliente de linha de comando mysql para melhorar a segurança de sua instalação MySQL.
$ sudo mysql_secure_installation
Agora, sempre que você quiser acessar o MySQL em seu sistema, você deve usar o mysql -u root -p
comando, e se você esquecer a senha root do MySQL, então leia este guia.
Reverter Alterações
Depois de terminar o uso do script, você pode reverter a configuração para o padrão para que o MySQL não solicite a senha quando você tentar fazer login da conta root ou com privilégios sudo.
Primeiro faça o login no mysql
$ mysql -u root -p
Depois de obter o prompt do mysql, copie e cole o comando abaixo nele e, assim que receber a mensagem “OK”, significa que o mysql usará ‘auth_sockets’ para autenticação a partir de agora.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
Embrulhar
Isso é tudo para este breve guia de solução de problemas, onde você aprende como corrigir um erro com falha: SET PASSWORD não tem significado para o usuário ‘root’@’localhost’”.
Resumindo, você precisa executar um comando no shell do sistema como bash, zsh, fish, etc. e outro no console do MySQL:
$ sudo mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'SET_PASSWORD';
Se você estiver enfrentando alguma dificuldade ao fazer alterações, sinta-se à vontade para comentar aqui.

Um homem com uma tecnologia efusiva que explorou algumas das incríveis coisas da tecnologia e está explorando mais. Enquanto avançava, tive a chance de trabalhar no desenvolvimento Android, Linux, AWS e DevOps com várias ferramentas de código aberto.
.