CREATE USERuser[IDENTIFIED BY [PASSWORD] 'password'] [,user[IDENTIFIED BY [PASSWORD] 'password']] ...
The CREATE USER statement creates new MySQL
accounts. To use it, you must have the global CREATE
USER privilege or the INSERT
privilege for the mysql database. For each
account, CREATE USER creates a new row in
the mysql.user table that has no
privileges. An error occurs if the account already exists.
Each account is named using the same format as for the
GRANT statement; for example,
'jeffrey'@'localhost'. If you specify only
the username part of the account name, a hostname part of
'%' is used. For additional information
about specifying account names, see Section 13.5.1.3, “GRANT Syntax”.
The account can be given a password with the optional
IDENTIFIED BY clause. The
user value and the password are
given the same way as for the GRANT
statement. In particular, to specify the password in plain
text, omit the PASSWORD keyword. To specify
the password as the hashed value as returned by the
PASSWORD() function, include the
PASSWORD keyword. See
Section 13.5.1.3, “GRANT Syntax”.

User Comments
Just a straightforward example of how I got it to work:
CREATE USER 'osCommerce'@'localhost' IDENTIFIED BY 'hupseflups';
if you get :
ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number
That means you typed:
CREATE USER 'username'@'localhost' IDENTIFIED BY PASSWORD 'mysqlpassword'
you need to drop the PASSWORD command to:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'mysqlpassword'
Notice that PASSWORD() is a system function to encrypt the specified password.
see http://dba.fyicenter.com/faq/mysql/mysql_managing_users_and_privileges_2.html for more details
Add your own comment.