MySQL Change root Password

See all MySQL Database Server related FAQ
How do I change MySQL root password under Linux, FreeBSD, OpenBSD and UNIX-like like operating system over the ssh session?

See all UNIX related articles/faq
Setting up MySQL password is one of the essential tasks. By default, root user is MySQL admin account user. Please note that the Linux or UNIX root account for your operating system and MySQL root user accounts are different. They are separate, and nothing to do with each other. Sometime you may remove Mysql root account and setup admin user as super user for security purpose.
[donotprint]
Tutorial details
Difficulty level Easy
Root privileges No
Requirements mysqladmin/mysql
Est. reading time 2 minutes
[/donotprint]
Advertisement

Method #1: Use mysqladmin command to change root password

If you have never set a root password for MySQL server, the server does not require a password at all for connecting as root. To setup root password for first time, use mysqladmin command at shell prompt as follows:
$ mysqladmin -u root password NEWPASSWORD
However, if you want to change (or update) a root password, then you need to use the following command:

$ mysqladmin -u root -p'oldpassword' password newpass

For example, If the old password is abc, you can set the new password to 123456, enter:

$ mysqladmin -u root -p'abc' password '123456'

Note:123456 password is used for demonstration purpose only. You must select a strong password. It is an important protection to help you have safer MySQL database transactions.

Sample live session from my home server using mysqladmin

Fig.01: mysqladmin command in action

Fig.01: mysqladmin command in action

How do I verify that the new password is working or not?

Use the following mysql command:

mysql -u root -p'123456' db-name-here

OR

mysql -u root -p'123456' -e 'show databases;'

A note about changing MySQL password for other users

To change a normal user password you need to type the following command. In this example, change the password for nixcraft mysql user:
$ mysqladmin -u nixcraft -p'old-password' password new-password

Method #2: Changing MySQL root user password using the mysql command

This is an another method. MySQL stores username and passwords in user table inside MySQL database. You can directly update or change the password using the following method for user called nixcraft:

Login to mysql server, type the following command at shell prompt:

$ mysql -u root -p

Use mysql database (type command at mysql> prompt):

mysql> use mysql;

Change password for user nixcraft, enter:

mysql> update user set password=PASSWORD("NEWPASSWORD") where User='nixcraft';

Finally, reload the privileges:

mysql> flush privileges;
mysql> quit

Sample live session from my home server

Fig.02: Changing mysql password for nixcraft user using sql commands.

Fig.02: Changing mysql password for nixcraft user using sql commands.

This method is also useful with PHP, Python, or Perl scripting APIs.

See also:

🥺 Was this helpful? Please add a comment to show your appreciation or feedback.

nixCrat Tux Pixel Penguin
Hi! 🤠
I'm Vivek Gite, and I write about Linux, macOS, Unix, IT, programming, infosec, and open source. Subscribe to my RSS feed or email newsletter for updates.

141 comments… add one
  • Luis Dec 10, 2016 @ 1:52

    I’m use Method #1 in a one Red Hat Enterprise Linux 7.3 into a Amazon EC2 instance, and work just fine !
    Thanks
    L

  • Raschad Jan 21, 2017 @ 21:00

    I have problem that I forgot my temp password how can i fix it? please help me :/

  • Shivoy Feb 19, 2017 @ 3:55

    My mysql application is telling me to reset the password using “alter user” method …..what does that even mean….how can i do that?? please help if u know how to figure that out…thanks

Leave a Reply

Your email address will not be published. Required fields are marked *

Use HTML <pre>...</pre> for code samples. Your comment will appear only after approval by the site admin.