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.
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?