SET PASSWORD [FORuser
] = { PASSWORD('some password
') | OLD_PASSWORD('some password
') | 'encrypted password
' }
The SET PASSWORD
statement
assigns a password to an existing MySQL user account.
If the password is specified using the
PASSWORD()
or
OLD_PASSWORD()
function, the
literal text of the password should be given. If the password is
specified without using either function, the password should be
the already-encrypted password value as returned by
PASSWORD()
.
With no FOR
clause, this statement sets the
password for the current user. Any client that has connected to
the server using a nonanonymous account can change the password
for that account.
With a FOR
clause, this statement sets the
password for a specific account on the current server host. Only
clients that have the UPDATE
privilege for the mysql
database can do this.
The user
value should be given in
format, where user_name
@host_name
user_name
and
host_name
are exactly as they are
listed in the User
and
Host
columns of the
mysql.user
table entry. For example, if you
had an entry with User
and
Host
column values of
'bob'
and '%.loc.gov'
, you
would write the statement like this:
SET PASSWORD FOR 'bob'@'%.loc.gov' = PASSWORD('newpass
');
That is equivalent to the following statements:
UPDATE mysql.user SET Password=PASSWORD('newpass
')
WHERE User='bob' AND Host='%.loc.gov';
FLUSH PRIVILEGES;
Another way to set the password is to use
GRANT
:
GRANT USAGE ON *.* TO 'bob'@'%.loc.gov' IDENTIFIED BY 'newpass
';
SET PASSWORD
may be recorded in
server logs or in a history file such as
~/.mysql_history
, which means that
plaintext passwords may be read by anyone having read access
to that information. See Section 5.3.2, “Password Security in MySQL”.
If you are connecting to a MySQL 4.1 or later server using a
pre-4.1 client program, do not use the preceding
SET PASSWORD
or
UPDATE
statement without
reading Section 5.3.2.3, “Password Hashing in MySQL”, first. The
password format changed in MySQL 4.1, and under certain
circumstances it is possible that if you change your password,
you might not be able to connect to the server afterward.
To see which account the server authenticated you as, invoke the
CURRENT_USER()
function.
For more information about setting passwords, see Section 5.5.5, “Assigning Account Passwords”