查看MySQL端口

发布时间: 2023-11-21 11:15 阅读: 文章来源:1MUMB1130PS
介绍

MySQL默认服务端口3306/TCP都不会陌生,但MySQL提供服务只有单纯的这个端口吗。在8.0版本默认启动的时候会发现,出现新的端口。

可以说MySQL使用的端口数量取决于所启用的特性、所使用的组件、应用程序连接的方式以及环境的其他方面。

按照官方说明 除了服务端口3306,一些MySQL特性使用的TCP端口在Linux系统(32768 - 61000)允许的本地端口范围内。MySQL官方提供的端口服务脑图:

为了避免与其他应用程序的端口冲突,有必要了解这些端口作用。

端口分类1.Client & Driver Connection

3306端口是经典MySQL协议(端口)的默认端口。MySQL客户端、MySQL连接器和实用程序(如mysqldump和mysqlpump)使用。X协议的端口(mysqlx_port),被MySQL Shell, MySQL连接器和MySQL路由器等客户端支持,通过将经典MySQL协议使用的端口乘以10来计算。例如,如果经典的MySQL协议端口是默认值3306,那么X协议端口是33060。默认端口/协议

默认端口/协议

SSL或其他加密

说明

3306/TCP

Yes

3306是经典MySQL协议的默认端口。

33060/TCP

Yes

X协议的端口(mysqlx_port)。

mysql> SHOW VARIABLES LIKE ‘port‘;mysql> SHOW VARIABLES LIKE ‘mysqlx_port‘;配置如,需要关闭X协议端口:#配置文件[mysqld]mysqlx=0##mysqld启动参数--skip-mysqlx2.MySQL Administrative Connection

MySQL 8.0.14开始,服务器允许专门为管理连接配置TCP/IP端口。

默认端口/协议

SSL或其他加密

说明

33062/TCP (default)

Yes

专门为MySQL管理连接配置的端口。

配置必须配合admin_address&admin_port 同时配置才能生效。[mysqld]admin_address=127.0.0.1admin_port=33064访问权限shell> mysql --port 33062 -uroot -pERROR 1227 (42000): Access denied; you need (at least one of) the SERVICE_CONNECTION_ADMIN privilege(s) for this operation

admin用户需要SERVICE_CONNECTION_ADMIN 权限

mysql > grant SERVICE_CONNECTION_ADMINON *.*to ‘root‘@‘localhost‘;Query OK, 0 rows affected (0.01 sec)mysql > flush privilegs;create_admin_listener_thread系统变量使DBA能够在启动时选择管理接口是否有自身的独立线程。默认值为OFF;也就是说,主接口上普通连接的管理器线程也处理管理接口的连接。mysql> show variables like ‘create_admin_listener_thread‘;+------------------------------+-------+| Variable_name| Value |+------------------------------+-------+| create_admin_listener_thread | OFF|+------------------------------+-------+1 row in set (0.01 sec)管理接口支持加密连接,并使用主接口TLS上下文,通过单独配置证书和密钥文件。[mysqld]admin_address=127.0.0.1admin_ssl_ca=admin-ca.pemadmin_ssl_cert=admin-server-cert.pemadmin_ssl_key=admin-server-key.pem3.MySQL Shell

MySQL shell 脚本交互端口。通过脚本有效协调功能。

默认端口/协议

SSL或其他加密

说明

3306/TCP

Yes

MySQL客户端连接使用。

33060/TCP

Yes

MySQL客户端到MySQL服务器(X协议)。

33061/TCP

Yes

MySQL Shell在InnoDB集群配置期间用于检查服务器的端口。

4.MySQL Workbench

MySQL官方提供的客户端链接工具,目前看文件比较大,包含诸多功能。

默认端口/协议

SSL或其他加密

说明

3306/TCP

Yes

MySQL客户端连接使用。

22/TCP

Yes

通过SSH隧道连接。

5.MySQL Router Connection

MySQL实现读写分离,Innodb Cluster自动路由中间件。

默认端口/协议

SSL或其他加密

说明

6446/TCP

Yes

MySQL路由器的读写SQL。

6447/TCP

Yes

MySQL路由器的只读SQL。

6448/TCP

Yes

MySQL路由器的读写API调用。

6449/TCP

Yes

MySQL路由器的只读调用。

3306/TCP

Yes

MySQL客户端连接使用。

33060/TCP

Yes

MySQL客户端到MySQL服务器(X协议)。

6.High Availability

MySQL高可用复制使用的端口。目前复制集群有 主从,Innodb Cluster,NDB。

默认端口/协议

SSL或其他加密

说明

3306/TCP

Yes

MySQL复制。

33061/TCP

Yes

MySQL Group Replication内部通信端口。

#InnoDB集群配置端口

[mysqld]plugin_load_add=‘group_replication.so‘group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"group_replication_local_address= "m1:33061"group_replication_group_seeds= "m1:33061,s1:33061,s2:33061"7.MySQL Enterprise External Authentication

对接Windos AD认证的服务端口。

默认端口/协议

SSL或其他加密

说明

389/TCP

Yes

MySQL企业版LDAP端口 (Active Directory)。

8.MySQL Enterprise Backup

企业版本mysqlbackup工具,所用到的端口。

默认端口/协议

SSL或其他加密

说明

3306/TCP

Yes

mysql服务端口。

443/TCP

Yes

Amazon S3,Oracle Object Store 备份服务端口。

9.Key Management

第三方key Service服务端口。

默认端口/协议

SSL或其他加密

说明

443/TCP

Yes

Key Services-AWS key管理服务(AWS KMS)。

10.Memcached Protocol

很少使用的Memcached插件提供服务端口。

默认端口/协议

SSL或其他加密

说明

11211/TCP

Yes

InnoDB引擎 memcached Plugin插件服务端口。

memcache使用包含innodb_memcached_config.sql 脚本和 PLUGIN libmemcached.so文件

shell> netstat -lnpActive Internet connections (only servers)Proto Recv-Q Send-Q Local AddressForeign Address StatePID/Program nametcp00 127.0.0.1:33062 0.0.0.0:*LISTEN42700/mysqldtcp00 0.0.0.0:112110.0.0.0:*LISTEN42700/mysqld。。。服务器端口分配

为了避免与其他应用程序的端口冲突,可以考虑配置ip_local_port_range参数来限制自动端口分配可用的端口范围,或者配置ip_local_reserved_ports参数来预留MySQL使用的端口。查看当前的ip_local_port_range和ip_local_reserved_ports配置:

# semanage port -a -t http_port_t -p tcp 8909 //开启非标准端口gt; semanage port -a -t mysqld_port_t -p tcp #避免与其他应用程序的端口冲突:$ cat /proc/sys/net/ipv4/ip_local_port_range$ cat /proc/sys/net/ipv4/ip_local_reserved_ports

除此之外也可以通过防火墙进行配置。

总结

从安全的角度来看,应该只在允许系统组件通信时才打开端口。在管理端口时,应始终遵循最小权限原则,即用户、进程、程序和其他系统组件只能访问其合法目的所需的信息和资源。

因为是全世界已知公认的的端口,特别是在公网上提供的MySQL服务时,为了减少被攻击,建议替换一些默认端口。 如:3306 改成3380端口。

参考

•••展开全文