Linux-Noob Forums

Full Version: How to reset mysql root password
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I just set it awhile ago, and now I forgot it. Is there a way to retrieve it back?

try this

 



Code:
./mysqladmin -u root password new-password




 

cheers

 

anyweb


I had the same problems but was getting some funny error messages with anywebs command so I used this reference :

 

[/url][url=http://dev.mysql.com/doc/mysql/en/Resetting_permissions.html]http://dev.mysql.com/doc/mysql/en/Resetting_permissions.html

 

Its was really good however where it says this:

 

shell> kill `cat /mysql-data-directory/host_name.pid`

 

I did this:

 

kill cat '/urs/local/mydsql/data/linux.domain.com.pid'

 

to get the process id to stop mysql. The rest worked fine and was a great help.


Never forgotten a password, then you must be in the minority. All is not lost however there is a way of starting MySQL and then accessing it without a password.

 



Code:
# /etc/init.d/mysql stop
# killall mysqld
# mysqld --skip-grant-tables --user=root &
# mysql
mysql> use mysql;
mysql> update user set password=password("newpassword") where user="root";
mysql> flush privileges;
mysql> exit
# killall mysqld
# /etc/init.d/mysql start




 

Thats it.. a quick and easy way to recover your mysql database password [img]<___base_url___>/public/style_emoticons/default/happy.gif[/img]


pinned

 

thanks znx !

Nice one znx :)

Some more notes..

 

If you see this complaint:



Code:
# mysqld --skip-grant-tables --user=root &
# 060318 16:31:10 [Warning] Ignoring user change to 'root' because the user was set to 'mysql' earlier on the command line




 

Then its most likely still running, you can confirm with:



Code:
# netstat -tlp | grep mysql
tcp  0  0  host.domain:mysql  *:*  LISTEN  20310/mysqld
# killall mysqld
# netstat -tlp | grep mysql
#




 

And then you can continue to the next step...


If you find that you can't execute mysqld .. then it could be that the mysql server is hidden, so you can use:

 



Code:
/usr/libexec/mysqld --skip-grant-tables --user=root &




 

Instead :)