Por que não consigo me conectar ao meu servidor MySQL remoto?

1

Eu tenho um servidor asterisco que está configurado em um provedor VPS. Eu preciso de um dos meus aplicativos locais para se conectar ao banco de dados para obter relatórios, mas estou tendo dificuldades em obter uma conexão somente de leitura para funcionar.

Eu posso ver que o servidor está escutando na porta 3306:

tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN

Eu criei uma exceção de firewall:

 Chain INPUT (policy ACCEPT 12 packets, 2400 bytes)
 num   pkts bytes target     prot opt in     out     source               destination
 1     7326 1439K ELASTIX_INPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0

 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 num   pkts bytes target     prot opt in     out     source               destination
 1        0     0 ELASTIX_FORWARD  all  --  *      *       0.0.0.0/0            0.0.0.0/0

 Chain OUTPUT (policy ACCEPT 215M packets, 43G bytes)
 num   pkts bytes target     prot opt in     out     source               destination
 1     7280 1542K ELASTIX_OUTPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0

 Chain ELASTIX_FORWARD (1 references)
 num   pkts bytes target     prot opt in     out     source               destination
 1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0                reject-with icmp-port-unreachable

 Chain ELASTIX_INPUT (1 references)
 num   pkts bytes target     prot opt in     out     source               destination
 1        0     0 ACCEPT     tcp  --  *      *       173.###.##.0/24       0.0.0.0/0           tcp spt:3306 dpt:3306
 2        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
 3        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
 4        0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpts:67:68
 5       22  9834 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpts:5004:5082
 6        0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:4569
 7        0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:5036
 8     7065 1411K ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpts:10000:20000
 9        0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:2727
 10       0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp spt:53
 11       0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:69
 12       0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:25
 13       0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:110
 14       0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:143
 15      22  1857 ACCEPT     tcp  --  *      *       173.##.##.0/24       0.0.0.0/0           tcp dpt:443
 16       0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:993
 17       0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:995
 18       0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:5222
 19       0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:9090
 20     206 14216 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
 21       3   152 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable

Eu tenho um usuário somente de leitura criado:

GRANT SELECT ON *.* TO 'read_only'@'%' IDENTIFIED BY PASSWORD '******************'

Mas continuo recebendo o erro:

Error number: 2003
Can't connect to MySQL server on '209.###.##.##' (0)

O que estou perdendo aqui?

    
por Joel Lewis 11.02.2015 / 16:16

1 resposta

2

Seu problema é que a conexão do cliente não virá da porta 3306, mas de uma porta de origem efêmera atribuída aleatoriamente. Remova o --sport 3306 e seus servidores listados devem poder se conectar.

    
por 11.02.2015 / 16:28