Vários mais problemas em potencial explicados aqui:
link
link
Se você deseja conceder todos os privilégios a todos os bancos de dados, tente
grant all on *.* to 'joe'@'%';
No entanto, antes de fazer isso, certifique-se de ter um usuário no banco de dados "mysql" que tenha "Host" configurado para seu endereço IP - no meu caso, meu IP aqui em casa. Assim, o usuário "joe" pode ter mais de um registro, um para cada IP do qual ele possa estar chamando. Para ver o que você já tem aí:
use mysql;
select Host, User, Password from user where user='joe';'
No meu caso, meu usuário agora tinha o IP correto, mas a senha também estava faltando. Eu cortei a senha (é hash ou algo assim) e isso resolveu o meu problema de conexão remota:
update user set Password='5493845039485' where user='joe';
Só mais uma coisa, em my.cnf você pode querer definir "port = 3306" ou qualquer porta que você planeje usar.