Remote accessing a MySQL server for non-root user
I found the solution! I needed to add "identified by" clause to the grant statement. I added that clause to the "create user" statement but I wasn't aware that it was required for adding permissions to the user as well!
It works great now.

P.S. So can you have different passwords to have different permissions for the same user? I get the idea of having different permissions based on where they're signing in from (localhost, ip-address, etc) but doing it based on what password they use seems odd (or is it just a by-product of the way the authentication system works?).