Não é possível conectar-se ao servidor azure mysql na máquina virtual

3

Eu tenho uma máquina virtual do Azure que hospeda um sistema Ubuntu, com o servidor MySQL e desejo acessar o banco de dados a partir de um aplicativo da Web. Quando eu instalei o mysql-server, eu executei

$ iptables -I INPUT -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
$ iptables -I OUTPUT -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT

para permitir conexões tcp. No arquivo /etc/mysql/my.cnf , adicionei bind-address = 168.63.178.87 , que é o "Endereço IP virtual" que o painel do Azure informa.

No mysql, o usuário que eu estou usando para conectar tem todos os privilégios no banco de dados necessários (eu acho):

mysql> SHOW GRANTS FOR 'user'@'%';
+-------------------------------------------------------------------------------------------------------------------+
| Grants for user@%                                                                                            |
+-------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY PASSWORD 'pass_ommited' |
| GRANT ALL PRIVILEGES ON 'database'.* TO 'user'@'%'                                                          |
+-------------------------------------------------------------------------------------------------------------------+

Mas quando o aplicativo tenta se conectar ao banco de dados, recebo o erro:

 CDbConnection failed to open the DB connection: SQLSTATE[HY000] [2003] Can't connect to MySQL server on '168.63.178.87' (4) 

(É uma aplicação de framework do Yii, no caso de ser importante).

Eu tenho acesso SSH completo à máquina virtual, usando o endereço IP fornecido e uma porta específica. O Azure também me informa o "endereço IP interno", que é 10.78.28.85 . Eu tentei vincular o servidor MySQL a esse endereço e a 0.0.0.0 , mas nenhum funcionou.

Suspeito que o problema é o redirecionamento feito para acessar minha instância específica no servidor, mas não sei como resolvê-lo.

    
por vguzmanp 12.04.2013 / 16:01

2 respostas

6

Eu finalmente resolvi isso. O problema é que eu não tinha um endpoint no Azure.

Eu criei o endpoint com a 3306 port e reiniciei o mysql-server com sudo restart mysql

Outro erro que tive foi que precisei definir o endereço de ligação como o endereço IP interno do servidor.

    
por 13.04.2013 / 00:05
0

O endpoint não é suficiente! Apenas passei 4 horas resolvendo este problema. Você também precisa verificar se o seu servidor tem uma regra de firewall para a porta MySql e, o mais importante, a regra é PUBLIC:

    
por 03.08.2017 / 00:09