MySQL (IMHO) has a wierd set of default permissions. Everything appears to work ok when you are root, however, you can not do anything as a normal user. The problem is discussed in their documentation.
My suggestion is to remove the wildcard entries from the users, db, and host tables. You will then need to insert some entries for the user name you want. I can not remember the particulars off the top of my head, but because of the way mysql resolves permissions, that default wildcard resolves first and thus fails your logon attempts.
If you have already explored this avenue, my apologies for wasting your time. Hope you find a good solution.
In order for your account (petetodd, xxxx) to be validated by
MySql, make sure that it has been granted access properly.
As root using mysql client, execute the following:
GRANT SELECT,INSERT,DELETE,UPDATE on test.* to petetodd@'' IDENTIFIED BY 'xxxx';
GRANT SELECT,INSERT,DELETE,UPDATE on test.* to petetodd@'%' IDENTIFIED BY 'xxxx';
GRANT SELECT,INSERT,DELETE,UPDATE on test.* to petetodd@localhost IDENTIFIED BY 'xxxx';
The '' after the ATSUM sign in the first line uses two single quotes
without space in between to signify that user "petetodd" of
unknown host may access the DB, provided that the password
Hope this helps.