Thursday, February 28, 2008

I have lost my MySQL root password, how can I get in?

If you have forgotten the root user password for MySQL, you can restore it 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:
kill `cat /mysql-data-directory/`

You must be either the Unix root user or the same user the server runs as to do this.

Restart mysqld with the --skip-grant-tables option.

Connect to the mysqld server with mysql -h hostname mysql and change the password with a GRANT command.

See section 7.35 GRANT and REVOKE Syntax

You can also do this with mysqladmin -h hostname -u user password 'new password'

Load the privilege tables with: mysqladmin -h hostname flush-privileges or with the SQL command FLUSH PRIVILEGES.

Note that after you started mysqld with --skip-grant-tables, any usage of GRANT commands will give you an Unknown command error until you have executed FLUSH PRIVILEGES.

No comments: