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;
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.4.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.
Starting from MySQL 4.1, you can see which account the server
authenticated you as by executing SELECT
CURRENT_USER()
.
User Comments
Another equivalent command (as SUPER) is:
GRANT USAGE ON *.* TO user@host IDENTIFIED BY 'password';
Add your own comment.