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";
[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.