Para que serve a porta 3306
WordPress, lojas virtuais e boa parte dos sistemas web guardam os dados em MySQL ou MariaDB. Quando o site e o banco rodam no mesmo servidor, a conexão nem precisa sair da máquina. A 3306 só entra em cena na rede quando a aplicação e o banco estão em servidores diferentes ou quando alguém administra o banco à distância.
Quem decide em quais interfaces o servidor escuta é a variável bind_. No MySQL 8.4 o padrão é *, todas as interfaces IPv4 e IPv6, mas pacotes de algumas distribuições Linux vêm configurados para escutar só em 127..
Quem usa a porta 3306 na prática:
- Sites WordPress, lojas virtuais e sistemas web
- Ferramentas de administração (MySQL Workbench, DBeaver, HeidiSQL)
- Réplicas entre servidores de banco
- Aplicações em servidores separados do banco
O que diz o registro da IANA
A 3306 é usada em TCP pelo protocolo clássico do MySQL, adotado também pelo MariaDB. O MySQL tem ainda o X Protocol, na TCP 33060.
| Nome do serviço | Protocolo | Descrição no registro | Referência |
|---|---|---|---|
| mysql | ProtocoloTCP | Descrição no registroMySQL | Referência |
| mysql | ProtocoloUDP | Descrição no registroMySQL | Referência |
É seguro deixar a porta 3306 aberta?
Bancos MySQL alcançáveis pela internet recebem tentativas automáticas de login com usuários comuns como root. Uma senha fraca entrega todos os dados, que podem ser copiados, apagados ou sequestrados. Além disso, o tráfego só fica cifrado se cliente e servidor estiverem configurados para TLS.
Como acessar o serviço sem expor a porta 3306
Para acessar o banco de fora sem expor a porta, use um túnel SSH: ssh - e conecte o seu programa em 127.. Assim só a porta 22, protegida por chave, fica acessível, ou nenhuma, se você entrar por VPN.
Se a aplicação precisa mesmo de acesso direto, crie no MySQL um usuário que só pode entrar a partir do IP da aplicação, libere a 3306 no firewall apenas para esse IP e exija TLS na conexão. Em hospedagens com painel, como o cPanel, essa liberação costuma ficar numa opção de acesso remoto ao MySQL em que você cadastra os IPs autorizados.
Como testar a porta 3306
O verificador de portas deve mostrar a 3306 fechada no seu IP público. Para testar a partir do servidor da aplicação, use nc - ou Test-.
Problemas comuns com a porta 3306
“Host 'x.x.x.x' is not allowed to connect to this MySQL server”
A conexão chegou ao servidor, mas não existe usuário autorizado para aquele IP de origem. Crie ou ajuste o usuário com o host correto (por exemplo, 'app'@'10.) em vez de liberar '%'.
“Can't connect to MySQL server” com tempo esgotado
O servidor não está escutando na interface de rede (bind_ em 127.), o firewall bloqueia a 3306 ou a hospedagem não permite conexões externas. Verifique nessa ordem.
Porta 3306 bloqueada na hospedagem
Muitas hospedagens compartilhadas só aceitam conexões ao banco a partir do próprio servidor ou de IPs cadastrados no painel. Cadastre o seu IP (o atual aparece em meu IP) ou use o phpMyAdmin oferecido pela hospedagem.