MySQL 使用的端口数取决于启用的功能、使用的组件、应用程序的连接方式以及环境的其他方面。
从安全的角度来看,端口应该只在允许系统组件进行通信的需要时打开。在管理端口时始终遵循最小权限原则,这要求用户、进程、程序和其他系统组件只能访问其合法目的所需的信息和资源。
如何管理端口访问取决于您环境的不同方面,例如操作系统功能、防火墙、安全工具、虚拟专用网络 (VPN) 的使用等。一些 MySQL 安装包辅助 MySQL 核心端口的端口访问配置。例如,适用于 Windows 的 MySQL Installer Server 包添加了对 Windows 防火墙的访问规则,适用于 Linux 的 MySQL 包添加了对 SELinux 或 AppArmor 的访问规则。但是,MySQL 不支持不太常见的、可选的或非 MySQL 产品端口。在这些情况下,必须使用以下命令手动打开端口,例如用于 SELinux 的命令:
$> semanage port -a -t mysqld_port_t -p tcp <port_open_to_mysqld>
有关为 MySQL 设置 SELinux 端口上下文的更多信息,请参阅SELinux TCP 端口上下文。
一些 MySQL 功能使用的 TCP 端口落在 Linux 系统允许的本地端口范围内 (32768 - 61000)。例如默认的MySQL X Protocol端口为33060,默认的MySQL Administrative Connection Port为33062,为避免与其他应用程序端口冲突,可以考虑配置
ip_local_port_range
参数限制自动分配端口可用的端口范围,或者配置ip_local_reserved_ports
参数保留 MySQL 使用的端口。要检查您的电流
ip_local_port_range
和
ip_local_reserved_ports
配置:
$ cat /proc/sys/net/ipv4/ip_local_port_range
$ cat /proc/sys/net/ipv4/ip_local_reserved_ports
有关配置说明ip_local_port_range
,
ip_local_reserved_ports
请参阅您的分发文档。