À 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
0 comentário