MySQL 9.0 发行说明
如果启用某些 MySQL 功能,您可能需要为这些功能使用的其他端口设置 SELinux TCP 端口上下文。如果 MySQL 功能使用的端口没有正确的 SELinux 上下文,这些功能可能无法正常运行。
以下部分介绍如何为 MySQL 功能设置端口上下文。一般来说,可以使用相同的方法为任何 MySQL 功能设置端口上下文。有关 MySQL 功能使用的端口的信息,请参阅 MySQL 端口参考。
对于 MySQL 9.0,启用 mysql_connect_any
不是必需的,也不建议这样做。
setsebool -P mysql_connect_any=ON
如果 SELinux 已启用,您必须为组复制通信端口设置端口上下文,该端口由 group_replication_local_address
变量定义。 mysqld 必须能够绑定到组复制通信端口并在那里监听。InnoDB 集群依赖于组复制,因此这同样适用于群集中使用的实例。要查看当前由 MySQL 使用的端口,请执行以下操作
semanage port -l | grep mysqld
假设组复制通信端口是 33061,通过发出以下命令来设置端口上下文
semanage port -a -t mysqld_port_t -p tcp 33061
如果 SELinux 已启用,您必须为 X 插件使用的通信端口设置端口上下文,该端口由 mysqlx_port
变量定义。 mysqld 必须能够绑定到 X 插件通信端口并在那里监听。
假设 X 插件通信端口是 33060,通过发出以下命令来设置端口上下文
semanage port -a -t mysqld_port_t -p tcp 33060
如果 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