MySQL Reference Manual for version 4.0.18.
A.4.2 How to Reset a Forgotten Root Password
If you never set a root
password for MySQL, then the server will
not require a password at all for connecting as root
. It is
recommended to always set a password for each user. See section 5.3.1 General Security Guidelines.
If you have set a root
password, but forgot what it was, you can
set a new password with the following procedure:
-
Take down the
mysqld
server by sending a kill
(not kill
-9
) to the mysqld
server. The pid is stored in a `.pid'
file, which is normally in the MySQL database directory:
| shell> kill `cat /mysql-data-directory/hostname.pid`
|
You must be either the Unix root
user or the same user mysqld
runs as to do this.
-
Restart
mysqld
with the --skip-grant-tables
option.
-
Set a new password with the
mysqladmin password
command:
| shell> mysqladmin -u root password "mynewpassword"
|
-
Now you can either stop
mysqld
and restart it normally,
or just load the privilege tables with:
| shell> mysqladmin -h hostname flush-privileges
|
-
After this, you should be able to connect using the new password.
Alternatively, you can set the new password using the mysql
client:
-
Take down and restart
mysqld
with the --skip-grant-tables
option as described above.
-
Connect to the
mysqld
server with:
| shell> mysql -u root mysql
|
-
Issue the following commands in the
mysql
client:
| mysql> UPDATE user SET Password=PASSWORD('mynewpassword')
-> WHERE User='root';
mysql> FLUSH PRIVILEGES;
|
-
After this, you should be able to connect using the new password.
-
You can now stop
mysqld
and restart it normally.
This document was generated
by rdg (Feb 25 2004)
using texi2html