À partir do MySQL Server 5.7, se não fornecermos uma senha para o usuário root durante a instalação, ele usará o plugin auth_socket para autenticação. Com esta configuração, o MySQL não se preocupará com sua senha de entrada, ele verificará se o usuário está se conectando usando um soquete UNIX e então comparará o nome de usuário. Se for igual, você está autenticado!

Erro ao fazer o login para o usuário root do MySQL a partir da conta de usuário normal do Linux:

emilio@darthaemilius:~$ mysql -uroot -p
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

Vamos verificar o plugin de autenticação atual que o servidor MySQL está usando:

mysql> SELECT plugin from mysql.user where User='root';
+-----------------------+
| plugin                |
+-----------------------+
| auth_socket           |
+-----------------------+

Para poder fazer o login com senha, você deve alterar o plugin de auth_socket para mysql_native_password. A seguir está o comando para fazer isso e criar uma nova senha.

mysql> UPDATE mysql.user SET plugin = 'mysql_native_password', authentication_string = PASSWORD('nova-senha') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;

Pronto. Agora você pode logar utilizando a nova senha.

Este procedimento também resolve os seguintes problemas no PhpMyadmin:

Can’t log into phpMyAdmin: mysqli_real_connect(): (HY000/1698): Access denied for user ‘root’@’localhost’

mysqli::real_connect(): (HY000/2002): Permission denied


Emilio Mario Wieczorek

I talk about everything, I discuss everything, but I only support 🇧🇼Grêmio. 💻IT Manager, 🎮Gamer and 👽Jedi (or Sith, depending on the day).

0 comentário

Deixe um comentário

Avatar placeholder

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *