MySQL 8.3 Release Notes
如果启用某些 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
如果启用了 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 Plugin 通信端口的上下文,该端口由 mysqlx_port
变量定义。mysqld 必须能够绑定到 X Plugin 通信端口并监听那里。
假设 X Plugin 通信端口是 33060,设置端口上下文通过发出:
semanage port -a -t mysqld_port_t -p tcp 33060