ERRO 1698 (28000): Acesso negado para o usuário 'root' @ 'localhost' no Ubuntu 18.04


22

Eu segui este tutorial para instalar o MySQL, mas depois de instalar o MySQL com sucesso, não consegui acessar o banco de dados.

ERRO 1698 (28000): acesso negado para o usuário 'root' @ 'localhost'


11
Eu enfrentei o mesmo problema, depois de algumas escavações, entendi que você tem que definir a senha de root como você mesmo seguindo as instruções no StackOverFlow .
Mohammad.H Fathi

Respostas:


46

Encontrei uma solução no link aqui . Ao seguir essa solução, resolvi meu problema.

Etapas curtas são:

sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test'; 

Nota: aqui testestá uma nova senha para o usuário root. Além disso, lembre-se de executar o comando sudo service mysql restartapós alterar o usuário.


Obrigado. É estranho que o mysql-server não tenha mais como digitar a senha.
gamofe

11
ERRO 1064 (42000): você tem um erro na sua sintaxe SQL; verifique o manual que corresponde à versão do servidor MariaDB para a sintaxe correta a ser usada perto de 'USER' root '@' localhost 'IDENTIFICADO COM mysql_native_password BY' b230mehonot '' na linha 1
alhelal

mesmo erro aqui ... :(
user1111929 8/08/18

@alhelal, A solução é para o MySQL, não para o MariaDB. Então você pode tentar outra solução.
Ashrafuzzaman Sujan

Não escreva mysql -u root, Apenas escreva "sudo mysql". Nos sistemas Ubuntu executando o MySQL 5.7 (e posterior), o usuário root é autenticado pelo plugin auth_socket por padrão.
ravisoni 12/01

13

Encontrei outra maneira que é muito melhor, pois não precisamos fornecer nenhuma senha para o sistema local.
É como se segue.

Terminal aberto e tipo

sudo mysql -u root -p

Ele será solicitado no mysql, aqui você pode disparar qualquer comando mysql.

Use a tabela mysql para alterar o tipo de tabela, para que possamos usar a senha vazia. Abaixo está o comando

USE mysql;

Agora alteramos o tipo de tabela seguindo o comando

UPDATE user SET plugin='mysql_native_password' WHERE User='root';

agora temos que liberar os privilégios, porque usamos UPDATE. Se você usar INSERT, UPDATE ou DELETE em tabelas de concessão diretamente, precisará usar FLUSH PRIVILEGES para recarregar as tabelas de concessão.

FLUSH PRIVILEGES;

agora saia do mysql seguindo o comando

exit;

agora reinicie o servidor mysql seguindo o comando

service mysql restart

Espero que isso possa ajudar

Obrigado.


2
Esta é a resposta certa
Ningappa

Obrigado Feliz em ajudar :)
Krunal Pathak
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.