Acesso negado para root no MySQL e PhpMyAdmin

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

[ Hits: 45.771 ]

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

Instalação do Sublime Text 2 no Ubuntu

Atualizando Ubuntu 12.04 para 12.10 via terminal

Evince - como visualizador de PDF default do Kile no Ubuntu

Leitura recomendada

Como saber se um programa esta instalado no Debian

Guia para o novato em Linux

Logical Volume Manager - LVM (GNU/Linux)

Zenwalk 5.2 finalmente lançado!

Mostrar a previsão do tempo com PHP

  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts