Port 3306: MySQL
Port 3306 is the default for MySQL and MariaDB. Keep it bound to localhost or an internal network; exposing it invites brute-force and injection attempts.
| Port number | 3306 |
|---|---|
| Service | MySQL / MariaDB |
| Protocol | TCP |
| Category | Databases |
| Default encryption | No |
How do I check whether port 3306 is open?
Port 3306 carries TCP, so a connection either completes its handshake or it does not, which makes the check definitive.
| Question | Command | What to know |
|---|---|---|
| Is it open on a remote host? | nc -vz example.com 3306 | A TCP handshake either completes or it does not, so netcat gives a definitive answer in one line. |
| Same check on Windows | Test-NetConnection example.com -Port 3306 | Built into PowerShell. TcpTestSucceeded in the output is the answer; telnet is not installed by default on modern Windows. |
| What is listening locally? | ss -tlnp | grep ':3306 ' | Lists the process bound to port 3306 on Linux. On macOS use lsof -nP -iTCP:3306 -sTCP:LISTEN, on Windows netstat -ano | findstr :3306 |
Replace example.com with the host you are testing. A blocked port and a port with nothing listening on it look identical from the outside, so if a service should be running, check locally before blaming the firewall.
Frequently asked questions
What is port 3306 used for?
Port 3306 is the default for MySQL and MariaDB. Keep it bound to localhost or an internal network; exposing it invites brute-force and injection attempts.
Is port 3306 TCP or UDP?
Port 3306 (MySQL) uses TCP.
Is port 3306 secure?
Port 3306 is not encrypted by default. Where possible, use an encrypted alternative or tunnel it over TLS or a VPN.
Should I open port 3306 on my firewall?
Only if you specifically need MySQL. Expose it to the smallest set of trusted sources, and never open database or Windows-service ports to the whole internet.