Found this on www.mysql.com (here: http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html)
In a Unix environment, the procedure for resetting the root
password is as follows:
- Log on to your system as either the Unix
root
user or as the same user that the mysqld server runs as. - 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 eithermysqld
or your system’s hostname.You can stop the MySQL server by sending a normalkill
(notkill -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 ofcat
to be substituted into thekill
command. - 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
. - 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
. - You should be able to connect using the new password.
Alternatively, on any platform, you can set the new password using the mysql client(but this approach is less secure):
- Stop mysqld and restart it with the
--skip-grant-tables --user=root
options (Windows users omit the--user=root
portion). - Connect to the mysqld server with this command:
shell>
mysql -u root
- 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 actualroot
password that you want to use. - You should be able to connect using the new password.