Mês: junho 2011

Recuperando a senha de root do MySQL

Quem nunca perdeu a senha de root do MySQL?
Poisé, aqui tem bem resumido como fazer pra recuperar.. Vamos aos comandos:

Primeiro passo é verificar se o seu MySQL está realmente parado:

[root@vostrolab ~]# /etc/init.d/mysqld status
mysqld is stopped

Segundo passo é criar um arquivo de inicialização pro banco de dados:

[root@vostrolab ~]# vim /var/lib/mysql/mysql-init

No exemplo acima utilizei o vim mas você pode utilizar o seu editor de texto predileto(nano, jed, joe, gedit, emacs e por aí vai…). Dentro do arquivo de configuração você pode colocar o seguinte conteúdo:

UPDATE mysql.user SET Password=PASSWORD(‘123456‘) WHERE User=’root’;
FLUSH PRIVILEGES;

Este comando acima será responsável por alterar a tabela mysql.user configurando sua nova senha para o usuário root. Note que grifei em vermelho acima onde você deve configurar sua nova senha.

Agora basta iniciar o MySQL em modo seguro e apontando para o seu arquivo de inicialização que acabamos de configurar. Para isso usamos o mysqld_safe conforme abaixo:

mysqld_safe –init-file=/var/lib/mysql/mysql-init &

Para testar, basta tentar conectar novamente no MySQL com a nova senha:

[root@vostrolab ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.1.56 Source distribution

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the current input statement.

mysql>

Feito… Agora basta parar o serviço mysqld_safe e iniciá-lo do modo convencional, que tudo estará funcionando normalmente com sua nova senha…

[root@vostrolab ~]# /etc/init.d/mysqld stop
110609 22:45:59 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
Stopping mysqld:                                           [  OK  ]
[1]+  Done                    mysqld_safe –init-file=/var/lib/mysql/mysql-init

[root@vostrolab ~]# /etc/init.d/mysqld start
Starting mysqld:                                           [  OK  ]

Por: Hudson Murilo dos Santos
Referências: http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html