For When You Can't Have The Real Thing
[ start | index | login ]
start > mysql > change root password

change root password

Created by dave. Last edited by dave, 10 years and 55 days ago. Viewed 2,854 times. #1
[edit] [rdf]

Changing the MySQL Root Password

(if you don't know what it is)

  • Log on to your system as the Unix mysql 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, host name, and configuration. Common locations are /var/lib/mysql/, /var/run/mysqld/, and /usr/local/mysql/data/. Generally, the file name has an extension of .pid and begins with either mysqld or your system's host name. You can stop the MySQL server by sending a normal kill (not kill -9) to the mysqld process, using the path name of the .pid file in the following command:
    shell> kill `cat /mysql-data-directory/`
    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.
  • Create a text file and place the following statements in it. Replace the password with the password that you want to use. The UPDATE and FLUSH statements each must be written on a single line. The UPDATE statement resets the password for all existing root accounts, and the FLUSH statement tells the server to reload the grant tables into memory.
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
  • Save the file. For this example, the file will be named /home/me/mysql-init. The file contains the password, so it should not be saved where it can be read by other users. Note that it has to be somewhere that the MySQL user can read it, so leaving it in /root won't work.
  • Start the MySQL server with the special --init-file option:
    shell> mysqld_safe --init-file=/home/me/mysql-init &
    The server executes the contents of the file named by the --init-file option at startup, changing each root account password.
  • After the server has started successfully, delete /home/me/mysql-init.
no comments | post comment
This is a collection of techical information, much of it learned the hard way. Consider it a lab book or a /info directory. I doubt much of it will be of use to anyone else.

Useful: | Copyright 2000-2002 Matthias L. Jugel and Stephan J. Schmidt