1. Verifique se não existe um firewall entre você e esse servidor;
2. Verifique se o serviço de iptables não está bloqueando seu acesso, crie uma excessão para a porta 3306 de entrada ou desative o serviço;
3. Configure o MySQL para que permita acesso externo, seguinto os passos abaixo (os comandos são para ubuntu):
- Abra o arquivo de configuração do MySQL
sudo vim /etc/mysql/my.cnf
- e Encontre a linha abaixo
bind-address = 127.0.0.1
- E comente da seguinte forma:
#bind-address = 127.0.0.1
- Reinicie o mysql
service mysql restart
mysql start/running, process 1646
- Conecte no serviço para executar os comandos
mysql -u root -h localhost -p
Enter password: ******
mysql> use mysql
Database changed
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USUARIO'@'IP.DO.SEU.SERVIDOR' IDENTIFIED BY 'SENHA_DO_USUARIO';
Query OK, 0 rows affected (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
Database changed
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USUARIO'@'IP.DO.SEU.SERVIDOR' IDENTIFIED BY 'SENHA_DO_USUARIO';
Query OK, 0 rows affected (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
- Por fim reinicie o serviço e faça seus testes novamente
root@cpro1134:~# service mysql restart
mysql start/running, process 1902
Eu já tive esse problema e resolvi dessa forma, espero ter ajudado.
Abraço!