特定の MySQL 機能を有効にする場合は、それらの機能で使用される追加ポートの SELinux TCP ポートコンテキストの設定が必要になることがあります。 MySQL 機能で使用されるポートに正しい SELinux コンテキストがない場合、機能が正しく機能しない可能性があります。
次の各セクションでは、MySQL 機能のポートコンテキストを設定する方法について説明します。 通常、同じメソッドを使用して、MySQL 機能のポートコンテキストを設定できます。 MySQL 機能で使用されるポートの詳細は、MySQL Port Reference を参照してください。
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
変数で定義されている Group Replication 通信ポートのポートコンテキストを設定する必要があります。mysqld は、Group Replication 通信ポートにバインドし、そこでリスニングできる必要があります。InnoDB クラスタ はグループレプリケーションに依存するため、これはクラスタで使用されるインスタンスにも同様に適用されます。 MySQL で現在使用されているポートを表示するには、次のコマンドを発行します:
semanage port -l | grep mysqld
Group Replication 通信ポートが 33061 の場合は、次を発行してポートコンテキストを設定します:
semanage port -a -t mysqld_port_t -p tcp 33061
SELinux が有効になっている場合は、mysqlx_port
変数で定義されている X プラグイン で使用される通信ポートのポートコンテキストを設定する必要があります。mysqld は、X プラグイン 通信ポートにバインドし、そこでリスニングできる必要があります。
X プラグイン 通信ポートが 33060 の場合は、次を発行してポートコンテキストを設定します:
semanage port -a -t mysqld_port_t -p tcp 33060
SELinux が有効な場合は、MySQL Router で使用される通信ポートのポートコンテキストを設定する必要があります。 MySQL Router で使用される追加の通信ポートがデフォルトの 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