Categories
Banco de dados Tutoriais

Como resolver o erro 1698 de acesso negado no MySQL e MariaDB

Como resolver o erro de acesso ao banco de dados no MySQL ou MariaDB: ERROR 1698 (28000): Access denied for user ‘root’@’localhost’.

Se você obteve a mensagem ERROR 1698 ACCESS DENIED FOR USER ao tentar acessar o seu banco de dados MySQL ou MariaDB, este passo a passo pode ajudar a resolver o problema.
Abra um terminal e autentique-se no sistema como superusuário.
Agora, siga o procedimento:

  1. Autentique-se como administrador no servidor de banco de dados:
    
    mysql -u root
    

    e acesse o ‘mysql’:

    
    use mysql
    
  2. Faça a seguinte edição:
    
    update user set plugin='' where User='root';
    
  3. Por fim, “refresque” o cache e saia do servidor:
    
    flush privileges;
    exit
    

Estes 3 passos devem resolver o problema.

ERROR 1698 (28000): Access denied for user 'root'@'localhost'
ERROR 1698 (28000): Access denied for user ‘root’@’localhost’

Referências

https://superuser.com/questions/957708/mysql-mariadb-error-1698-28000-access-denied-for-user-rootlocalhost.
https://dev.mysql.com/doc/refman/5.7/en/error-messages-server.html#error_er_access_denied_no_password_error.

By Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

27 replies on “Como resolver o erro 1698 de acesso negado no MySQL e MariaDB”

Valeu, no meu deu certo, estou ussando o kali Linux no modo live.

Mano, pra você e pros próximos que chegarem nesse post e encontrarem esse problema façam o seguinte:

# Pare o MySQL
sudo service mysql stop
# Crie um diretório de serviço para o MySQL.
sudo mkdir /var/run/mysqld
# Dê permissão de usuário para escrever nesse diretório MySQL.
sudo chown mysql: /var/run/mysqld
# Inicie o MySQL manualmente, sem checagem de permissão ou networking.
sudo mysqld_safe –skip-grant-tables –skip-networking &
# Faça Login sem senha.
mysql -uroot mysql
# Agora, dentro do sistema, mude sua senha
UPDATE mysql.user SET authentication_string=PASSWORD(‘SUANOVASENHA’), plugin=’mysql_native_password’ WHERE User=’root’;

# Dê shutdown no MySQL.
sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
# Inicie o serviço do MySQL service normalmente.
sudo service mysql start

Depois disso você pode tentar logar no phpmyadmin, deve ter resolvido o problema.

Espero que isso sane a dúvida da galera, me quebrou a porra da cabeça pra achar os dados e também para adaptar a minha realidade.

Alguém poderia me ajudar já tentei de tudo , sou muito leigo em linux , estou tentando instalar o wordpress na vps do Amazon aws mais sempre que chego na parte de entrar no phpmyadmin eu não consigo . sempre da este error ” #1698 – Access denied for user ‘root’@’localhost'”
e este tambem : “mysqli_real_connect(): (HY000/1698): Access denied for user ‘root’@’localhost’ ”
eu já tentei de tudo , alguém me da uma luz por favor .

Muito Elias. Resolveu o meu problema de erro 1698-de-acesso-negado.

Deus abençoe. Forte abraço!

Existe um erro (pequeno detalhe esquecido pelo autor), após o comando: flush privileges
Faltou colocar o caractere (ponto e virgula) “flush privileges;”, o autor poderia editar e colocar, pois eu não coloquei e embananou tudo, tive de pressionar ctrl+C e abandonar o processo e continuar de novo depois que vi a imagem do terminal e havia esse ponto e virgula esquecido. Depois resolveu tudo. Edita aí vai para que outros (leigos) não caia no mesmo erro que eu.

Grato.

Para ser sincero, fiz diversos comandos, mas o que resolveu mesmo foi remover mysql por completo e também phpmyadmin.
Depois reinstalei e ficou bom.

pode ocorrer o erro de permissão 1045, ai basta ir na pasta do phpmyadmin e olhar o arquivo: config-db.php e ver o usuario e a senha que estão nas variaveis db pass e db user e tentar o login

Foi de grande ajuda suas dicas haja visto que é muito difícil encontrar na Internet material recente, principalmente no meu caso que estou estudando com o debian 9. Apenas uma dúvida se alguém puder me ajudar fico imensamente grato, só consigo logar no phpmyadmin com o usuário ‘phpmyadmin’ gostaria de logar como root. Obrigado a todos

Bom dia. Infelizmente nem esse método, nem o citado nos comentários funcionou comigo. Por alguma razão, quando instalei o MySQL, não foi solicitado a criação do usuário admin, entõ logo no primeiro passo não funciona. Consegui criar uma senha para o root usando o mysqladmin, mas não funciona. Pelo que pesquisei, isso é um problema no Ubuntu 18.04, que estou usando agora. Alguma outra ideia de solução?

Neste momento, o Ubuntu 18.04 (Maio/2018) ainda é muito recente.
Alguns bugs podem ser esperados e, “possivelmente” serão solucionados mais pra frente.
Você teria links para os sites em que leu sobre o assunto?

Neste site, há relato de uma possível solução:


sudo mysql -u root

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'nova senha';

Eu não testei e, portanto, não sei se resolve.

Tente usar como usuário root ‘phpmyadmin’
Fiz isso e funcionou.
Verifiquei na arquivo config-db.php como citado acima e vi que o usuário root é ‘phpmyadmin’ não mais ‘root’ como antes.

você pode verificar acessando /etc/phpmyadmin/config-db.php

po meu velho kkkk tava me batendo a séculos , e era só mudar a zorra do login para phpmyadmin

Muito obrigado…. Estava com problemas em acessar o banco, pois ao instalar o mysql client não apareceu a opção para colocar a senha do root.

Grato e parabéns

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.