I think this has something to do with the username, password and the host from which you are trying to access the MySQL server.
When you create a user in MySQL there are 3 things that determine the type of access, the username, the password and the host from which you are attempting to connect to the database.
So for example, it is possible to have multiple usernames "arthur" all having different types of access to the MySQL server. To differentiate between each one, there is also a host. By default the host is localhost. This means that if you connect to MySQL from the same host that the MySQL server resides on it will be accepted. If on the other hand you attempt to access from a different host(machine) and that host (or wildcard %) is not defined then you will get access denied.