In a Unix environment, the procedure for resetting the root password is as follows:
- Log on to your system as either the Unix
rootuser or as the same user that the mysqld server runs as. - Locate the
.pidfile 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.pidand begins with eithermysqldor your system's hostname.You can stop the MySQL server by sending a normal
kill(notkill -9) to the mysqld process, using the pathname of the.pidfile in the following command:shell>
kill `cat /mysql-data-directory/host_name.pid`Note the use of backticks rather than forward quotes with the
catcommand; these cause the output ofcatto be substituted into thekillcommand. - 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-initoption: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=rootoptions (Windows users omit the--user=rootportion). - 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 actualrootpassword that you want to use. - You should be able to connect using the new password.
Posted by 망고



