Meu palpite é o bind-address
A porta padrão para o mysql é 3306. Verifique se está ouvindo em todas as interfaces com netstat -tanlp | grep LISTEN | grep 3306
:
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN mysqld
Se isso diz 127.0.0.1:3306
, então o seu mysql está escutando apenas no localhost. Se for esse o caso, altere a configuração my.cnf
bind-address do mysql:
bind-address = 10.0.0.1
ou
bind-address = 0.0.0.0
para ouvir em todas as interfaces.
Atualização: Ok, agora que você é capaz de se conectar à porta 3306. A mensagem de erro:
Host 'vm_ip' is not allowed to connect to this MySQL server
Significa que não há firewall / iptables no caminho. A mensagem vem do próprio MySQL. Você precisará fazer "concessões" apropriadas para permitir que seu "usuário" se conecte ao banco de dados do seu "host". De uma perspectiva de segurança, você precisa ter muito cuidado com o que você habilita aqui. Veja o seguinte URL para ajuda:
Existem muitos sites que concedem a todos os links de todos os tipos. Tenha muito cuidado com o que você usa destes. Se seu usuário precisar de acesso somente leitura, você poderá começar com algo como:
GRANT select ON mydatabase.* to myusername@'192.168.1.1' IDENTIFIED BY 'mypasssword';
Tenha muito cuidado ao simplesmente executar um comando do tipo "GRANT all".