Mysql é um pouco estranho no fato de você se você deseja fazer o login a partir desse servidor só que é 'username' @ 'localhost', mas se você precisar fazer o login de outro servidor você também tem que adicionar uma segunda entrada de usuário 'username' @ 'ipaddress' ou 'username' @ '%' para qualquer host (além do host local) e, em seguida, conceder privilégios ao usuário a cada variação.
grant all on mydb.* to 'username'@'localhost'......... ; grant all on mydb.* to 'username'@'%' ......;