Syntax:
SET PASSWORD [FOR user] = password_option

password_option: {
    PASSWORD('auth_string')
  | OLD_PASSWORD('auth_string')
  | 'hash_string'
}

The SET PASSWORD statement assigns a password to a MySQL user account,
specified as either a cleartext (unencrypted) or encrypted value:

o 'auth_string' represents a cleartext password.

o 'hash_string' represents an encrypted password.

SET PASSWORD can be used with or without an explicitly named user
account:

o With a FOR user clause, the statement sets the password for the named
  account, which must exist:

SET PASSWORD FOR 'jeffrey'@'localhost' = password_option;

  In this case, you must have the UPDATE privilege for the mysql
  database.

o With no FOR user clause, the statement sets the password for the
  current user:

SET PASSWORD = password_option;

  Any client who connects to the server using a nonanonymous account
  can change the password for that account. To see which account the
  server authenticated you as, invoke the CURRENT_USER() function:

SELECT CURRENT_USER();

When the read_only system variable is enabled, SET PASSWORD requires
the SUPER privilege in addition to any other required privileges.

If a FOR user clause is given, the account name uses the format
described in http://dev.mysql.com/doc/refman/5.5/en/account-names.html.
The user value should be given as 'user_name'@'host_name', where
'user_name' and 'host_name' are exactly as listed in the User and Host
columns of the account's mysql.user table row. The host name part of
the account name, if omitted, defaults to '%'. For example, to set the
password for an account with User and Host column values of 'bob' and
'%.example.org', write the statement like this:

SET PASSWORD FOR 'bob'@'%.example.org' = PASSWORD('auth_string');

The password can be specified in these ways:

o Using the PASSWORD() function

  The 'auth_string' function argument is the cleartext (unencrypted)
  password. PASSWORD() hashes the password and returns the encrypted
  password string for storage in the mysql.user account row.

  The PASSWORD() function hashes the password using the hashing method
  determined by the value of the old_passwords system variable value.
  It should be set to a value compatible with the hash format required
  by the account authentication plugin. For example, if the account
  uses the mysql_native_password authentication plugin, old_passwords
  should be 0 for PASSWORD() to produce a hash value in the correct
  format. For mysql_old_password, old_passwords should be 1.

o Using the OLD_PASSWORD() function:

  The 'auth_string' function argument is the cleartext (unencrypted)
  password. OLD_PASSWORD() hashes the password using pre-4.1 hashing
  and returns the encrypted password string for storage in the
  mysql.user account row. This hashing method is appropriate only for
  accounts that use the mysql_old_password authentication plugin.

o Using an already encrypted password string

  The password is specified as a string literal. It must represent the
  already encrypted password value, in the hash format required by the
  authentication method used for the account.

URL: http://dev.mysql.com/doc/refman/5.5/en/set-password.html

