Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Setting the TCP Port Context for MySQL Features

8.7.5.2 为 MySQL 功能设置 TCP 端口上下文

如果启用某些 MySQL 功能,您可能需要设置 SELinux TCP 端口上下文,以便这些功能使用的附加端口。如果 MySQL 功能使用的端口没有正确的 SELinux 上下文,这些功能可能无法正确工作。

以下部分描述如何设置 MySQL 功能的端口上下文。一般来说,同样的方法可以用于设置任何 MySQL 功能的端口上下文。有关 MySQL 功能使用的端口的信息,请参阅 MySQL 端口参考

从 MySQL 8.0.14 到 MySQL 8.0.17,mysql_connect_any SELinux 布尔值必须设置为 ON。从 MySQL 8.0.18 开始,不再需要或推荐启用 mysql_connect_any

setsebool -P mysql_connect_any=ON
设置组复制的 TCP 端口上下文

如果启用了 SELinux,您必须设置组复制通信端口的上下文,该端口由 group_replication_local_address 变量定义。mysqld 必须能够绑定到组复制通信端口并监听那里。InnoDB 集群依赖于组复制,因此这也适用于集群中的实例。要查看 MySQL 当前使用的端口,请发出:

semanage port -l | grep mysqld

假设组复制通信端口是 33061,设置端口上下文通过发出:

semanage port -a -t mysqld_port_t -p tcp 33061
设置文档存储的 TCP 端口上下文

如果启用了 SELinux,您必须设置 X Plugin 通信端口的上下文,该端口由 mysqlx_port 变量定义。mysqld 必须能够绑定到 X Plugin 通信端口并监听那里。

假设 X Plugin 通信端口是 33060,设置端口上下文通过发出:

semanage port -a -t mysqld_port_t -p tcp 33060
设置 MySQL 路由器的 TCP 端口上下文

如果启用了 SELinux,您必须设置 MySQL 路由器使用的通信端口的上下文。假设 MySQL 路由器使用的附加通信端口是默认的 6446、6447、64460 和 64470,在每个实例上设置端口上下文通过发出:

semanage port -a -t mysqld_port_t -p tcp 6446
semanage port -a -t mysqld_port_t -p tcp 6447
semanage port -a -t mysqld_port_t -p tcp 64460
semanage port -a -t mysqld_port_t -p tcp 64470