Acesso negado para root no MySQL e PhpMyAdmin

Publicado por Fábio Cordeiro em 22/12/2011

[ Hits: 46.715 ]

Blog: https://ice.pucminas.br/

 


Acesso negado para root no MySQL e PhpMyAdmin



Publiquei esse conteúdo antes no meu Blog, e como a visibilidade aqui no VOL é extremamente superior ao meu humilde Blog, resolvi postá-lo para os interessados que talvez tenham este problema.

Trata-se do erro:1045 (28000): Access denied for user 'root'@'localhost' (using password: YES). Onde as bases e usuários estão funcionando normalmente, exceto o acesso para o usuário 'root' ao MySQL.

Problema:

Já me deparei com uma situação em que o MySQL está funcionando aparentemente normal, todos os bancos estavam sendo acessados sem problemas e o banco de dados permitia logar-se com todos os usuários normais em suas respectivas bases.

O problema se dava na hora de efetuar logon com usuário administrador (root), o mesmo não permitia logon retornando a seguinte mensagem de erro: no terminal:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES).

E No PhpMyAdmin retornava mensagem:
Acesso negado para usuário root.

Pois bem, fiz algumas pesquisas e consegui encontrar uma solução. Compilei algumas dicas neste tutorial para que eu não precise buscar e 'quebrar a cabeça' novamente para resolver o mesmo problema. E também fica para quem se deparar com esta solução.

Configurando o Apache e MySQL

Primeiro, o Mysql:

# sudo /etc/init.d/mysql stop

Depois abra o arquivo de configuração do 'php5' e procure pela linha que habilita entrada em modo segurança:

# vim /etc/php5/apache2/php.ini

Dentro do vim no modo função, digite: /safe (para localizar a linha) e altere-a para 'On'.

safe_mode = On


Saia do editor VIM e salve as alterações.

Reinicie o MySQL em modo de segurança (safe_mod):

# safe_mysqld -skip-grant-tables &

Com MySQL em modo segurança, selecione a tabela mysql e depois altere a senha do usuário 'root' e conceda todos os privilégios. Saia do MySQL com o comando EXIT.

Mysql> USE mysql
mysql> UPDATE user SET password=password("nova_senha") WHERE user="root";

Resultado :
Query OK, 1 row affected (0.00 sec)
Rows matched: 3 Changed: 1 Warnings: 0

mysql> flush privileges;

Resultado:
Query OK, 0 rows affected (0.00 sec)

mysql> exit

Configurações finais e Referências

Agora no Shell do Linux, mate todos os processos do MySQL:

# killall mysqld mysql

Reinicie o MySQL normalmente:

# /etc/init.d/mysql start

Para testar, acesse o MySQL pelo terminal:

# mysql -u root -p

E pelo navegador através do PhpMyAdmin:
Entre com usuário e senha de 'root' normalmente, o problema foi resolvido.

Referências:
Publicado antes em meu Blog:
Outras dicas deste autor

Instalação e configuração Apache2 + PHP + MySQL + PostgreSQL

Instalação do Java JDK no Ubuntu 11.10

Atualizando Ubuntu 12.04 para 12.10 via terminal

Evince - como visualizador de PDF default do Kile no Ubuntu

Recuperar barra lateral do Unity no Ubuntu 11.10

Leitura recomendada

Como instalar o Insigne Momentum 5.5

Coisas para fazer após instalar Fedora 26

Usando o Nokia N95 como modem no Linux

Desenvolvimento para Android - Particularidades do projeto

Drivers de CD/DVD duplicados no Ubuntu Feisty

  

Comentários
[1] Comentário enviado por alexhctp em 23/12/2011 - 21:03h

Parabéns pelo tutorial, ele é simples e didático, certamente será util para muitos companheiros assim como será pra mim.

Obrigado!!!!

XD

[2] Comentário enviado por felippesena em 07/05/2012 - 10:41h

Acho que tenho uma solução um pouco melhor, no meu caso resolveu.
E criar uma senha nova para mysqladmin

# mysqladmin -u root password
New password: sua_senha
Confirm new passord: sua_senha

para testar entre com:

mysql -u root -p

depois digite sua senha se der certo você irá entrar no mysql

mysql>

para sair digite

quit

Espero ter ajudado.

Seu comentário está aguardando moderação.

[3] Comentário enviado por fabioled em 03/08/2012 - 23:03h

Amigo, Felipepesena, verifiquei seu comentário e fiquei até feliz em ter uma solução melhor para o problema, porem nao testei na primeira vez que vi o comentário. Hoje precisei resolver o problema novamente, e constatei que a sua dica não se aplica a todas as situações. gera o erro abaixo da mesma forma nao permitindo o acesso: veja:


mysqladmin -u root password
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'


Sendo assim, foi necessário reparar da mesma forma que postei antes. De qualquer forma valeu o comentário, pois possivelmente servirá para alguém que esteja com cenário similar ao seu.



Contribuir com comentário