#1045 – Access denied for user ‘root’@’localhost’ (using password: NO) fix

On a test box running an older version of WAMP, I wanted to correct an installation oversight, the user root with no password. After installing several databases, I decided to change the user root password from no password to some password. After doing so, I immediately encountered the following error:

#1045 – Access denied for user ‘root’@’localhost’ (using password: NO)

I was unable to access phpMyAdmin so I found the following command line on http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html#resetting-permissions-windows

The procedure for resetting the MySQL root account’s password on Windows is as follows:

  • Log on to your system as Administrator.
  • 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 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.
  • Create a text file and place the following command within it on a single line: SET PASSWORD FOR 'root'@'localhost' = PASSWORD('');
  • Save the file with any name. For this example the file will be C:\mysql-init.txt.
  • Open a console window to get to the DOS command prompt: Start Menu -> Run -> cmd
  • If you installed MySQL to another location, adjust the following commands accordingly. At the DOS command prompt, execute this command: C:\> C:\wamp\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.

When complete, I stopped and restarted the services. All is operational. Success.