PortChecker Logo
PortChecker

Puerto 3306 — MySQL (TCP)

MySQL

¿Qué es el puerto 3306?

Puerto predeterminado para MySQL y MariaDB.

Este es un puerto registrado (1024–49151), a menudo asignado a servicios como MySQL.  ·  No formal RFC; MySQL Client/Server Protocol

¿Cuándo necesitas el puerto 3306 abierto?

Open only when an application on a different host must connect to MySQL. For single-server setups (app and database on the same machine), keep port 3306 closed externally and connect via a local socket or 127.0.0.1.

Usos comunes y software

  • MySQL Server
  • MariaDB
  • Percona Server
  • WordPress
  • Drupal
  • phpMyAdmin (backend)
  • Laravel
  • Django

Seguridad

Bind MySQL to 127.0.0.1 by setting bind-address in my.cnf unless remote access is explicitly needed. Never expose port 3306 to the internet. For remote access, use an SSH tunnel: ssh -L 3306:localhost:3306 user@server. Grant privileges using least-privilege principles — avoid GRANT ALL and the root account for application connections.

¿Es seguro el puerto 3306?

Un puerto abierto aumenta la superficie de ataque. La seguridad depende de cómo esté configurado MySQL.

Riesgo medio

Mantén MySQL actualizado con parches de seguridad. Exige autenticación fuerte y restringe el acceso a las IPs mínimas necesarias.

Comprobar el puerto 3306 ahora

Prueba la conectividad del puerto 3306 en cualquier host.

1-65535

Abrir el puerto 3306

Para permitir conexiones entrantes al puerto 3306 (MySQL), configura tu firewall y añade una regla de reenvío de puertos en tu router hacia la IP local de tu dispositivo.

Firewall de Windows

Abre el Firewall de Windows Defender → Configuración avanzada → Reglas de entrada → Nueva regla → Puerto → TCP → Puertos locales específicos: 3306 → Permitir la conexión → Asigna nombre y guarda la regla.

netsh advfirewall firewall add rule name="Open Port 3306" dir=in action=allow protocol=tcp localport=3306
Linux (UFW / iptables)sudo ufw allow 3306/tcpsudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
Router

Accede a tu router (192.168.1.1 o 192.168.0.1) → Reenvío de puertos → Añade una nueva regla: Protocolo TCP, Puerto externo 3306, IP interna: IP local de tu dispositivo, Puerto interno 3306 → Guardar.

Cómo cerrar el puerto 3306

Si no necesitas MySQL, bloquea este puerto en el firewall o en el router.

Firewall de Windows

Para bloquear el puerto 3306 en Windows, ejecuta el siguiente comando en PowerShell o Símbolo del sistema (como administrador):

netsh advfirewall firewall add rule name="Block Port 3306" dir=in action=block protocol=tcp localport=3306
Linux (UFW / iptables)Ejecuta: sudo ufw deny 3306/tcpsudo iptables -A INPUT -p tcp --dport 3306 -j DROP
Router

Elimina o desactiva la regla de redirección del puerto 3306.

Preguntas frecuentes

¿Para qué se usa el puerto 3306?▾

El puerto 3306 es el puerto TCP estándar para MySQL. Lo utilizan servidores y aplicaciones que necesitan aceptar conexiones entrantes para este servicio. Si debes mantenerlo abierto depende de si ejecutas activamente un servidor MySQL; de lo contrario, debe permanecer cerrado.

¿Es seguro mantener abierto el puerto 3306?▾

Un puerto 3306 abierto amplía tu superficie de ataque. Si no ejecutas MySQL activamente, cierra el puerto en tu firewall y elimina reglas de reenvío de puertos. Si MySQL debe ser accesible, restringe el acceso a IPs conocidas y mantén el software actualizado.