首页/网络/常用端口速查/3306 MySQL 数据库服务

3306 MySQL 数据库服务

全世界最常见的数据库服务端口:MySQL/MariaDB 默认监听 3306,是应用连接、备份脚本与攻击扫描的共同目标。

常用端口速查网络更新于 2026-10-13

MySQL 与 3306 端口

3306 是 MySQL、MariaDB 与 Percona Server 的默认 TCP 端口;同一台机器上的客户端用 Unix socket 连接时不经过网络端口,因此只改端口并不能挡住本机访问。默认实例监听 3306,多实例部署常见 3307、3308 顺延。新版本默认已把 bind-address 收敛到本机,但云主机安全组误放开的例子依然很多,被扫号与拖库的案例长期高居前列。

基本信息

服务MySQL / MariaDB / Percona Server
协议TCP(本机可用 Unix socket,不走端口)
相邻端口33060 为 X Protocol;主从复制同样走 3306
配置文件/etc/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf
权限要求管理需 root 级账号,应用账号应按库与来源网段最小授权

典型使用场景

  • 业务应用连接数据库:连接池配置指向内网地址与 3306
  • 主从或组复制:从库向主库建立复制连接,通常网段内直连
  • 备份与导出:mysqldump 或物理备份工具按端口连接实例
  • 多实例同机部署:用 3306/3307/3308 区分不同业务库
  • 开发与测试环境:只对本机或跳板机开放,避免开发机直连生产

监听与连接自检

监听与连接自检
ss -lntp | grep 3306                          # 确认监听地址是 127.0.0.1 还是 0.0.0.0
mysql -h 127.0.0.1 -P 3306 -u app -p -e 'SELECT VERSION();'   # 本机冒烟连接
mysql -h 10.0.1.20 -P 3306 -u app -p -e 'SELECT 1;'            # 从应用侧验证网络可达
nc -vz 10.0.1.20 3306                          # 网络层先行确认,排除防火墙拦截
mysqladmin -h 10.0.1.20 -u app -p status       # 顺带看一眼运行时长与连接数

加固项与判定

加固项检查方式风险点
监听地址看 bind-address 与 ss 输出0.0.0.0 表示全网卡可连
root 远程登录查 mysql.user 中 host 含 % 的 root等于把最高权限账户放到网络上
应用账号来源SHOW GRANTS 看 host 网段写成 % 时任何来源都能尝试
空口令账户查 authentication_string 为空的账号无需口令即可登录
备份文件权限看备份目录属主与权限备份泄露等于整库泄露

账户与权限复核(SQL)

账户与权限复核(SQL)
SELECT user, host, plugin FROM mysql.user ORDER BY user;   -- 列出所有账户与来源
SHOW GRANTS FOR 'app'@'10.0.1.%';                            -- 确认授权范围
SELECT user, host FROM mysql.user WHERE authentication_string = '';   -- 排查空口令账户
SELECT user, host FROM mysql.user WHERE user = 'root' AND host NOT IN ('localhost','127.0.0.1','::1');   -- 远程 root

输出逐列读法

输出项含义正常/异常
Id连接线程编号反复出现大编号说明连接频繁重建
User当前连接使用的账户出现 root 或陌生账户要追溯来源
Host客户端来源地址与端口非应用网段来源应告警
db当前使用的库NULL 表示尚未选库
CommandSleep 表示空闲、Query 表示执行中大量长时间 Sleep 说明连接池未回收
Time该状态已持续秒数大数值配合 Query 往往是慢查询

连接数与慢查询体检

连接数与慢查询体检
SHOW STATUS LIKE 'Threads_connected';        -- 当前连接数
SHOW VARIABLES LIKE 'max_connections';       -- 上限,两者比值接近 80% 需扩容或排查泄漏
SHOW PROCESSLIST;                            -- 关注长时间 Sleep 与异常来源
SHOW ENGINE INNODB STATUS;                   -- 查看最近死锁与事务情况
防火墙与安全组只放行应用服务器来源;数据库账户按库授权,远程 root 与空口令账户必须清理,这几步比改端口有效得多。
复制账号单独处理:只授予 REPLICATION SLAVE 权限并限制来源地址,不要复用业务账号;复制凭据一旦泄露,攻击者可以直接拉走整库数据。
备份演练不能省:逻辑备份适合单库与跨版本迁移,物理备份适合大库快速恢复;备份文件权限要与数据库本身同级,并且定期做一次真实恢复,避免需要时才发现不可用。
连接数打满往往先由慢查询引起:打开慢查询日志后用 mysqldumpslow 或 pt-query-digest 汇总,优先处理扫描行数大的语句;在没有清掉慢语句之前扩容,只是把问题往后推。
本机连接不走端口:同机脚本用 Unix socket 连库时,即使把 3306 关掉也照样能访问,因此只收敛网络端口挡不住本机进程,本机登录权限与账户管控要一起做。

易错点

  • 云安全组放开 3306 且账户为 root 弱口令,数天内必然被扫号
  • 主从复制开放到外网且复制账号口令简单,等于把整库读取通道交出去
  • 账户来源写成百分号通配,任何来源都能尝试登录
  • 备份文件与数据库放在同一块盘且权限宽松,既丢在磁盘故障上也丢在权限上

数据来源与参考

  • MySQL 官方文档:默认端口与 listen 配置
  • IANA 端口注册表(mysql)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌