MySQL 8.0 リファレンスマニュアル


5.1.12.2 管理接続管理

接続ボリューム管理 で説明されているように、通常の接続に使用されるインタフェースで max_connections 接続がすでに確立されている場合でも管理操作を実行できるように、MySQL サーバーは CONNECTION_ADMIN 権限 (または非推奨の SUPER 権限) を持つユーザーに対して単一の管理接続を許可します。

また、MySQL 8.0.14 の時点では、次の項で説明するように、サーバーは管理接続専用の TCP/IP ポートを許可します。

管理インタフェースの特性

管理接続インタフェースには、次の特性があります:

  • サーバーは、admin_address システム変数が起動時にその IP アドレスを示すように設定されている場合にのみ、インタフェースを有効にします。 admin_address が設定されていない場合、サーバーは管理インタフェースを維持しません。

  • admin_port システム変数は、インタフェースの TCP/IP ポート番号 (デフォルトは 33062) を指定します。

  • 管理接続の数に制限はありません。

  • 接続は、SERVICE_CONNECTION_ADMIN 権限を持つユーザーにのみ許可されます。

  • create_admin_listener_thread システム変数を使用すると、DBA は起動時に管理インタフェースに独自のスレッドがあるかどうかを選択できます。 デフォルトは OFF です。つまり、メインインタフェース上の通常の接続のマネージャスレッドは、管理インタフェースの接続も処理します。

サーバー my.cnf ファイルの次の行は、ループバックインタフェースの管理インタフェースを有効にし、ポート番号 33064 (つまり、デフォルトとは異なるポート) を使用するように構成します:

[mysqld]
admin_address=127.0.0.1
admin_port=33064

MySQL クライアントプログラムは、適切な接続パラメータを指定して、メインインタフェースまたは管理インタフェースに接続します。 ローカルホストで実行されているサーバーが、メインインタフェースおよび管理インタフェースに 3306 および 33062 のデフォルトの TCP/IP ポート番号を使用している場合、次のコマンドはこれらのインタフェースに接続します:

mysql --protocol=TCP --port=3306
mysql --protocol=TCP --port=33062
暗号化された接続に対する管理インタフェースのサポート

MySQL 8.0.21 より前の管理インタフェースでは、メインインタフェースに適用される connection-encryption 構成を使用した暗号化された接続がサポートされていました。 MySQL 8.0.21 の時点では、管理インタフェースには暗号化された接続用の独自の構成パラメータがあります。 これらはメインインタフェースパラメータに対応していますが、管理インタフェースの暗号化された接続を独立して構成できます:

  • --admin-ssl オプションは --ssl オプションと似ていますが、メインインタフェースではなく管理インタフェースの暗号化された接続を有効または無効にします。

  • admin_tls_xxx および admin_ssl_xxx システム変数は、tls_xxx および ssl_xxx システム変数と似ていますが、メインインタフェースではなく管理インタフェースの TLS コンテキストを構成します。

connection-encryption サポートの構成に関する一般情報は、セクション6.3.1「暗号化接続を使用するための MySQL の構成」 を参照してください。 この説明はメイン接続インタフェース用に記述されていますが、パラメータ名は管理接続インタフェース用に似ています。 次のノートでは、管理インタフェースに固有の情報を提供します。

管理インタフェースの TLS 構成は、次の規則に従います:

  • --admin-ssl が有効な場合 (デフォルト)、管理インタフェースは暗号化された接続をサポートします。 インタフェース上の接続の場合、適用可能な TLS コンテキストは、デフォルト以外の管理 TLS パラメータが構成されているかどうかによって異なります:

    • すべての管理 TLS パラメータにデフォルト値がある場合、管理インタフェースはメインインタフェースと同じ TLS コンテキストを使用します。

    • 管理 TLS パラメータにデフォルト以外の値がある場合、管理インタフェースは独自のパラメータで定義された TLS コンテキストを使用します。 (これは、admin_tls_xxx または admin_ssl_xxx システム変数がデフォルトとは異なる値に設定されている場合です。) これらのパラメータから有効な TLS コンテキストを作成できない場合、管理インタフェースはメインインタフェース TLS コンテキストにフォールバックします。

  • --admin-ssl が無効になっている場合、管理インタフェースへの暗号化された接続は無効になります。 (これは、--admin-ssl の無効化が優先されるため、管理 TLS パラメータにデフォルト以外の値がある場合でも当てはまります。)

例:

  • サーバー my.cnf ファイル内のこの構成は管理インタフェースを有効にしますが、そのインタフェースに固有の TLS パラメータは設定しません:

    [mysqld]
    admin_address=127.0.0.1

    その結果、管理インタフェースは暗号化された接続をサポートしますが (管理インタフェースが有効な場合、暗号化はデフォルトでサポートされるため)、メインインタフェース TLS コンテキストを使用します。 クライアントは、管理インタフェースに接続するときに、メインインタフェースでの通常の接続と同じ証明書およびキーファイルを使用する必要があります。 次に例を示します (単一行にコマンドを入力します):

    mysql --protocol=TCP --port=33062
          --ssl-ca=ca.pem
          --ssl-cert=client-cert.pem
          --ssl-key=client-key.pem
  • このサーバー構成は、管理インタフェースを有効にし、そのインタフェースに固有の TLS 証明書およびキーファイルパラメータを設定します:

    [mysqld]
    admin_address=127.0.0.1
    admin_ssl_ca=admin-ca.pem
    admin_ssl_cert=admin-server-cert.pem
    admin_ssl_key=admin-server-key.pem

    その結果、管理インタフェースは独自の TLS コンテキストを使用して暗号化された接続をサポートします。 クライアントは、管理インタフェースに接続するときに、そのインタフェースに固有の証明書およびキーファイルを使用する必要があります。 次に例を示します (単一行にコマンドを入力します):

    mysql --protocol=TCP --port=33062
          --ssl-ca=admin-ca.pem
          --ssl-cert=admin-client-cert.pem
          --ssl-key=admin-client-key.pem
  • このサーバー構成は、管理インタフェースを有効にしますが、暗号化された接続を無効にします:

    [mysqld]
    admin-ssl=OFF
    admin_address=127.0.0.1

    この場合、構成で admin_ssl_ca などの管理 TLS パラメータも設定すると、admin-ssl=OFF が優先されるため、これらのパラメータ設定は無効になります。


関連キーワード:  管理, インタフェース, 接続, admin, サーバー, 変数, 構成, サポート, パラメータ, リファレンス