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:
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.
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
Save the file with any name. For this example the file will be C:\mysql-init.txt.
Start Menu -> Run -> cmd
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
For Unix environment, the procedure for resetting the root password is as follows:
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.
SET PASSWORD FOR ‘root’@'localhost’ = PASSWORD(‘MyNewPassword’);
Save the file with any name. For this example the file will be ~/mysql-init.
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.
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):
shell> mysql -u root
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.