mariadb access denied

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

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.

Publicado por

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!

15 comentários sobre “Como resolver o erro 1698 de acesso negado no MySQL e MariaDB”

  1. 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.

  2. 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.

  3. 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

  4. 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

  5. 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?

    1. 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.

    2. 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

  6. 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

Deixe uma resposta

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

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