次の手順では、リモートクライアントによる IPv6 接続を許可するために MySQL を構成する方法を示します。 これは前に示したローカルクライアントについての手順と似ていますが、サーバーとクライアントホストが別個であり、それぞれがローカル以外の独自の IPv6 アドレスを持ちます。 この例では次のアドレスが使用されます。
Server host: 2001:db8:0:f101::1
Client host: 2001:db8:0:f101::2
これらのアドレスは、文書化目的で IANA によって推奨されるルーティングできないアドレス範囲から選択され、ローカルネットワークでの試験向けには十分です。 ローカルネットワーク外部のクライアントから IPv6 接続を受け入れるには、サーバーホストが公開アドレスを持つ必要があります。 ネットワークプロバイダによって IPv6 アドレスが割り当てられている場合、それを使用できます。 そうでない場合、アドレスを取得するための別の方法は、IPv6 ブローカを使用する方法で、セクション5.1.13.5「ブローカからの IPv6 アドレスの入手」を参照してください。
-
適切な
bind_address
設定を使用して MySQL サーバーを起動し、IPv6 接続の受入れを許可します。 たとえば、次の行をサーバーオプションファイルに入れて、サーバーを再起動します。[mysqld] bind_address = *
bind_address
の値として *(または::
) を指定すると、すべてのサーバーホストの IPv4 および IPv6 インタフェースで IPv4 と IPv6 の両方の接続が許可されます。 サーバーを特定のアドレスリストにバインドする場合は、bind_address
にカンマ区切りの値リストを指定することで、MySQL 8.0.13 の時点でこれを実行できます。 この例では、IPv4 アドレスと必要なサーバーホストの IPv6 アドレスを指定します:[mysqld] bind_address = 198.51.100.20,2001:db8:0:f101::1
詳細は、セクション5.1.8「サーバーシステム変数」 の
bind_address
の説明を参照してください。 -
サーバーホスト (
2001:db8:0:f101::1
) で、クライアントホスト (2001:db8:0:f101::2
) から接続できるユーザーのアカウントを作成します:mysql> CREATE USER 'remoteipv6user'@'2001:db8:0:f101::2' IDENTIFIED BY 'remoteipv6pass';
-
クライアントホスト (
2001:db8:0:f101::2
) 上で、mysql クライアントを呼び出し、新しいアカウントを使用するサーバーに接続します。shell> mysql -h 2001:db8:0:f101::1 -u remoteipv6user -premoteipv6pass
-
接続情報を表示する単純なステートメントを試してみます。
mysql> STATUS ... Connection: 2001:db8:0:f101::1 via TCP/IP ... mysql> SELECT CURRENT_USER(), @@bind_address; +-----------------------------------+----------------+ | CURRENT_USER() | @@bind_address | +-----------------------------------+----------------+ | remoteipv6user@2001:db8:0:f101::2 | :: | +-----------------------------------+----------------+