Reset the Root Password of MySQL Server

By default, MySQL Server will be installed with root superuser without any password. You can connect to MySQL server as root without requiring password or by keying in blank password. However, if you have set the password for root and forget or unable to recall the password, then you will need to reset the root password for MySQL.

MySQL Reference Manual has detail steps on how to reset password for root which are as below:

The procedure under Windows:

  1. Log on to the Windows system where MySQL is running as Administrator.
  2. Stop the MySQL server if it is running. For a server that is running as a Windows service, go to the Services manager:

    Start Menu -> Control Panel -> Administrative Tools -> Services

    Then find the MySQL service in the list, and stop it.

    If your server is not running as a service, you may need to use the Task Manager to force it to stop.

  3. Create a text file and place the following command within it on a single line:

    SET PASSWORD FOR ‘root’@'localhost’ = PASSWORD(’MyNewPassword’);

    Save the file with any name. For this example the file will be C:\mysql-init.txt.

  4. Open a console window to get to the DOS command prompt:

    Start Menu -> Run -> cmd

  5. If MySQL is installed in C:\mysql. If MySQL is installed in another location, adjust the following commands accordingly.

    At the DOS command prompt, execute this command:

    C:\> C:\mysql\bin\mysqld-nt –init-file=C:\mysql-init.txt

    The contents of the file named by the –init-file option are executed at server startup, changing the root password. After the server has started successfully, you should delete C:\mysql-init.txt.

    If you installed MySQL using the MySQL Installation Wizard, you may need to specify a –defaults-file option:

    C:\> “C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe”
    –defaults-file=”C:\Program Files\MySQL\MySQL Server 5.0\my.ini”
    –init-file=C:\mysql-init.txt

    The appropriate –defaults-file setting can be found using the Services Manager:

    Start Menu -> Control Panel -> Administrative Tools -> Services

    Find the MySQL service in the list, right-click on it, and choose the Properties option. The Path to executable field contains the –defaults-file setting. Be sure to supply the –init-file argument with the full system path to the file, regardless of your current working directory

  6. Stop the MySQL server, then restart it in normal mode again. If the MySQL server is ran as a service, start it from the Windows Services window. If you start the server manually, use whatever command you normally use.
  7. Connect to MySQL server by using the new password.

For Unix environment, the procedure for resetting the root password is as follows:

  1. Log on to the Unix system as either the Unix root user or as the same user that the mysqld server runs as.
  2. Locate the .pid file that contains the server’s process ID. The exact location and name of this file depend on your distribution, hostname, and configuration. Common locations are /var/lib/mysql/, /var/run/mysqld/, and /usr/local/mysql/data/. Generally, the filename has the extension of .pid and begins with either mysqld or the system’s hostname.

    Stop the MySQL server by sending a normal kill (not kill -9) to the mysqld process, using the pathname of the .pid file in the following command:

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

    Note the use of backticks rather than forward quotes with the cat command; these cause the output of cat to be substituted into the kill command.

  3. Create a text file and place the following command within it on a single line:

    SET PASSWORD FOR ‘root’@'localhost’ = PASSWORD(’MyNewPassword’);

    Save the file with any name. For this example the file will be ~/mysql-init.

  4. Restart the MySQL server with the special –init-file=~/mysql-init option:

    shell> mysqld_safe –init-file=~/mysql-init &

    The contents of the init-file are executed at server startup, changing the root password. After the server has started successfully you should delete ~/mysql-init.

  5. Connect to MySQL server by using the new password.

Alternatively, on any platform, mysql client can be used to set the new password, althought it’s less secure way of resetting the password (detailed instruction here):

  1. Stop mysqld and restart it with the –skip-grant-tables –user=root options (Windows users omit the –user=root portion).
  2. Connect to the mysqld server with this command:

    shell> mysql -u root

  3. Issue the following statements in the mysql client:

    mysql> UPDATE mysql.user SET Password=PASSWORD(’newpwd’)
    -> WHERE User=’root’;
    mysql> FLUSH PRIVILEGES;

    Replace ‘newpwd’ with the actual root password that you want to use.

  4. You should be able to connect using the new password.

13 Responses to “Reset the Root Password of MySQL Server”

  1. Navas
    April 13th, 2009 13:31
    13

    I HAVE GOT XAMPP FOR PHP5 AND MYSQL BUT WHEN I OPEN THE PHPMYADMIN ITS NOT SHOWING THE LOGIN PAGE

  2. 網路打雜工 » FreeBSD 6.2 mysql error message
    November 4th, 2008 16:29
    12

    [...] 參考資料: http://www.mydigitallife.info/2006/04/23/reset-the-root-password-of-mysql-server/ [...]

  3. Mike
    October 31st, 2008 04:17
    11

    no se le entiende nada, estan malisimas las intrucciones, no son claras (tampoco soy tonto) que pena u_u

  4. Rob
    September 9th, 2008 07:34
    10

    Completely wrong syntax, check the code before posting guy

  5. Jose
    August 14th, 2008 10:47
    9

    phpmyadmin

  6. Kamal BAKOUR
    July 31st, 2008 21:18
    8

    Procdure to reset root password in MySQL [RedHat & Fedora]

    ======================================================
    Step-1
    [root@redhat~]#killall mysqld
    [root@redhat~]#/usr/libexec/mysqld –skip-grant-tables –user=root &

    ======================================================
    Step-2 (In MySQL)
    [root@redhat~]#mysql
    use mysql;
    update user set password=password(”newpassowrd”) where user=”root”;
    flush privileges;
    exit;

    ======================================================
    Step-3
    [root@redhat~]#killall mysqld
    [root@redhat~]#/etc/init.d/mysqld start

    There you go :)

  7. Dan
    April 25th, 2008 01:37
    7

    There is a typo on the mysqld startup script.

    The correct command requires TWO dashes before the parameter setting.

    The correct command is (note TWO dashes before skip-grant-tables):

    mysqld_safe –skip-grant-tables

  8. Rob
    April 24th, 2008 10:05
    6

    Dude,

    Didn’t see these comments while reading the article, but I figured out the double-hyphen syntax by trial and error.
    Anyway you saved my Life by putting this documentation on the Net !! A thousand thanks ! -Rob

  9. Roar
    April 23rd, 2008 23:39
    5

    Gah. “know” not “now”. I’m going for coffee now.

  10. Roar
    April 23rd, 2008 23:39
    4

    Ah and now that I’ve posted I see the problem. This site is disallowing double “-”. It’s being escaped or something.

    Well dear reader, just now that “-init” should have TWO dashes (hyphens), not one.

  11. Roar
    April 23rd, 2008 23:38
    3

    This isn’t correct. The syntax should be “–init” not “-init”.

  12. Mike Scalora
    October 8th, 2007 03:47
    2

    You should add –verbose –console to the command in step 5. I got a error because of a copy and paste issue that include a quote of the wrong type but there’s no error feedback without the –console. Also, the -console to stop the server with CTRL-C under windows, not sure about linux.

    -Mike

  13. Change and Reset MySQL root Password » My Digital Life
    June 6th, 2006 18:12
    1

    [...] Other then the ways specified here to reset and change the root password for mySQL database in the case that the password is forgotten or lost, the following instructions explain in details the alternative way at the last part of the guide, where no additional file needs to be created: [...]

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Subscribe to comments feature has been disabled. To receive notification of latest comments posted, subscribe to My Digital Life Comments RSS feed or register to receive new comments in daily email digest.

New Articles

Incoming Search Terms for the Article

mysql forgot password - forgot mysql password - xampp mysql password - mysql remove password - xampp reset mysql password - reset mysql password - mysql remove root password - mysql lost password - mysql change root password - remove mysql password - forgot mysql root password windows - find mysql password - forgot password mysql - how to remove mysql root password - how to find mysql password - delete mysql password - recover mysql root password windows - default mysql password - remove password mysql - mysql root password reset - MySQL default password - how to remove mysql password - forget mysql password - forget mysql root password - mysql forgotten password - windows mysql password - lost password mysql - mysql reset root password - disable mysql password - xampp mysql password reset - lost mysql password windows - recover mysql password windows - mysql password Windows - mysql server default password - remove mysql root password - removing mysql root password - reset root password mysql - default xampp mysql password - remove root password mysql - remove pass mysql - default password for mysql - reset password mysql xampp - xampp password mysql - mysql delete password - removing mysql password - mysql recover root password - mysql windows password - xampp reset password - mysql password location - delete mysql root password -