Porta MySQL 3306 no VPS não visível do remoto

0

Novato aqui, migrando meu site de um host compartilhado para um host virtual baseado em nome em um novo servidor virtual privado (Linode) executando o Ubuntu 16.04. O Apache está funcionando. Eu instalei o MySQL e criei um banco de dados vazio. Eu não tenho firewall (ainda); iptables mostra listas vazias.

Eu criei um usuário do MySQL chamado ‘jk’ com acesso de qualquer lugar. Você pode vê-lo neste resultado da consulta:

   mysql> select host, user from mysql.user;
   +-----------+------------------+
   | host      | user             |
   +-----------+------------------+
   | %         | jk               |
   | localhost | debian-sys-maint |
   | localhost | mysql.sys        |
   | localhost | root             |
   +-----------+------------------+
   4 rows in set (0.00 sec)

e "netstat" dizem que a porta 3306 está escutando de qualquer lugar (veja o primeiro resultado):

  jk@bird:~$ netstat -an
  Active Internet connections (servers and established)
  Proto Recv-Q  Send-Q  Local Address      Foreign Address     State      
  tcp        0       0  127.0.0.1:3306     0.0.0.0:*           LISTEN     
  tcp        0       0  0.0.0.0:22         0.0.0.0:*           LISTEN     
  tcp        0     244  45.56.81.181:22    24.4.251.228:58915  ESTABLISHED
  tcp6       0       0  :::80              :::*                LISTEN     
  tcp6       0       0  :::22              :::*                LISTEN 

Tudo fica bem no Linode (para newbie me).

Mas não é tão bom quando tento me conectar a ele no meu Mac. Como o DNS ainda está apontando para o meu host compartilhado antigo, especifico meu servidor Linode pelo seu endereço numérico IPv4. Quando eu pergunto ao recurso Port Scan do MacOS 'Network Utility para procurar pela porta 3306 no meu servidor Linode, ele não encontra nada. Para verificar se estou usando essa ferramenta corretamente, verifiquei as portas 22 e 80 e ela está aberta conforme o esperado. Da mesma forma, ele diz que a porta 3306 está aberta no meu antigo host compartilhado.

O aplicativo cliente do MySQL (Sequel Pro) no meu Mac corrobora o problema:

  MySQL said: Can't connect to MySQL server on ‘45.56.81.181’ (61)

O que pode estar errado?

    
por Jerry Krinock 12.07.2016 / 20:34

1 resposta

1

Você está interpretando mal sua saída netstat.

tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN

A porta está vinculada somente para uso por localhost (Comunicação entre processos).

Para um ouvinte, "Endereço local" indica o endereço que está sendo ouvido. como o único computador que pode se conectar ao 127.0.0.1 é o localhost, ninguém mais pode se conectar à porta. Se o "endereço local" for 0.0.0.0 ou 45.56.81.181, um ouvinte é vinculado a qualquer endereço em qualquer nic ou no endereço da LAN, respectivamente.

O endereço externo é sempre 0.0.0.0:* para portas LISTENING (porque não há outra parte em um ouvinte). O Endereço Externo é válido apenas para conexões existentes (onde o Estado não é 'LISTEN').

Na sua configuração do mysql, você terá que configurá-lo para escutar em todas as interfaces (0.0.0.0) ou na interface da LAN.

Veja aqui a documentação sobre a configuração do MySQL para acesso à rede: link

    
por 12.07.2016 / 20:57

Tags