Nick Stinemates
Nick Stinemates

Reputation: 44280

How do I change the password of the root user in MySQL?

I have long since forgotten the password for the root user on one of my boxes. Is there a way I can change it without having to log in to the instance, or will I have to reinstall?

Upvotes: 3

Views: 2196

Answers (3)

user12345
user12345

Reputation: 3137

If you are running an Ubuntu server (possibly also Debian?) you can easily reset.

If you are on 12.04:

sudo dpkg-reconfigure mysql-server-5.5

If you are on 10.04:

sudo dpkg-reconfigure mysql-server-5.1

If you are not sure which mysql-server version is installed you can try:

dpkg --get-selections | grep mysql-server

See for more info:

https://help.ubuntu.com/12.04/serverguide/mysql.html https://help.ubuntu.com/10.04/serverguide/mysql.html

Upvotes: 0

BlaM
BlaM

Reputation: 28898

Step 1

Stop database:

shell> /etc/init.d/mysql stop

Step 2

Restart database

  • without password autentification
  • without connection to the network

Access to database is only possible through it's sock file '/var/lib/mysql/mysql.sock'.

shell> mysqld --user=mysql --pid-file=/var/lib/mysql/mysqld.pid \
       --socket=/var/lib/mysql/mysql.sock --datadir=/var/lib/mysql \
       --skip-grant-tables --skip-networking  &

Step 3

Connect to the database and change password:

shell> mysql --database mysql --socket=/var/lib/mysql/mysql.sock

If you want to, show all users:

mysql> select User, password from user;

Set new password:

mysql> update user set password=password('NEW PASS') WHERE User='USERNAME';

Leave database connection:

mysql> exit

Step 4

Restart database server "normally".

shell> kill `cat /var/lib/mysql/mysqld.pid`
shell> /etc/init.d/mysql start

Upvotes: 4

Nick Stinemates
Nick Stinemates

Reputation: 44280

A quick Google resulted in this answer. In the root shell type:

mysqladmin -u root password <password>

Upvotes: 4

Related Questions