(mysql.info) resetting-permissions
Info Catalog
(mysql.info) administration-issues
(mysql.info) administration-issues
(mysql.info) crashing
A.4.1 How to Reset the Root Password
------------------------------------
If you have never set a `root' password for MySQL, the server does not
require a password at all for connecting as `root'. However, it is
recommended to set a password for each account. See
security-guidelines.
If you set a `root' password previously, but have forgotten what it
was, you can set a new password. The following procedure is for Windows
systems. The procedure for Unix systems is given later in this section.
The procedure under Windows:
1. Log on to your system as Administrator.
2. Stop the MySQL server if it is running. For a server that is
running as a Windows service, go to the Services manager:
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.
3. 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
`C:\mysql-init.txt'.
4. Open a console window to get to the DOS command prompt:
Start Menu -> Run -> cmd
5. We are assuming that you installed MySQL to `C:\mysql'. If you
installed MySQL to another location, adjust the following commands
accordingly.
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 install 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.
6. Stop the MySQL server, then restart it in normal mode again. If
you run the server as a service, start it from the Windows
Services window. If you start the server manually, use whatever
command you normally use.
7. You should be able to connect using the new password.
In a Unix environment, the procedure for resetting the `root' password
is as follows:
1. Log on to your system as either the Unix `root' user or as the
same user that the `mysqld' server runs as.
2. 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 either `mysqld' or your
system's hostname.
You can 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.
3. 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'.
4. 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'.
5. 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):
1. Stop `mysqld' and restart it with the -skip-grant-tables
-user=root options (Windows users omit the -user=root portion).
2. Connect to the `mysqld' server with this command:
shell> mysql -u root
3. 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 actual `root' password that you want to
use.
4. You should be able to connect using the new password.
Info Catalog
(mysql.info) administration-issues
(mysql.info) administration-issues
(mysql.info) crashing
automatically generated byinfo2html