Hi!

I have a problem with this line:

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, LOCK TABLE ON test.* TO user1@localhost IDENTIFIED BY "abcdef";

Here is what I do:

>mysql -h localhost -u root -p
Enter password: *******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 66
Server version: 5.0.45-community-nt MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> GRANT SELECT, INSERT, UPDATE, DELETE, LOCK TABLES ON test.* TO user1@localhost IDENTIFIED BY "abcdef";
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW GRANTS FOR user1;
+-------------------------------------------------------------------------------
---------------------------------+
| Grants for user1@%
                                 |
+-------------------------------------------------------------------------------
---------------------------------+
| GRANT USAGE ON *.* TO 'user1'@'%' IDENTIFIED BY PASSWORD '*2470C0C06
DEE42FD1618BB99005ADCA2EC9D1E19' |
+-------------------------------------------------------------------------------
---------------------------------+
1 row in set (0.00 sec)

mysql>

As you can see grants didn't change!
Why?

Did you do FLUSH PRIVILEGES once you completed this query?

Also is identified by 'abcdef' valid? (meaning does it hold true)

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, LOCK TABLE ON test.* TO 'user1'@'localhost' IDENTIFIED BY "abcdef";

placing ' ' around user1 and localhost did the thing! :)