次の手順では、::1
のローカルホストアドレスを使用してローカルサーバーに接続するクライアントによる IPv6 接続を許可するために、MySQL を構成する方法を示します。 ここに示す手順は、システムが 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 = 127.0.0.1,::1
詳細は、セクション5.1.8「サーバーシステム変数」 の
bind_address
の説明を参照してください。 -
管理者としてサーバーに接続し、
::1
ローカル IPv6 ホストアドレスから接続できるローカルユーザーのアカウントを作成します:mysql> CREATE USER 'ipv6user'@'::1' IDENTIFIED BY 'ipv6pass';
アカウント名で許可される IPv6 アドレスの構文については、セクション6.2.4「アカウント名の指定」を参照してください。
CREATE USER
ステートメントに加えて、特定の権限をアカウントに付与するGRANT
ステートメントを発行できます。ただし、この手順の残りのステップには不要です。 -
mysql クライアントを呼び出し、新しいアカウントを使用するサーバーに接続します。
shell> mysql -h ::1 -u ipv6user -pipv6pass
-
接続情報を表示する単純なステートメントを試してみます。
mysql> STATUS ... Connection: ::1 via TCP/IP ... mysql> SELECT CURRENT_USER(), @@bind_address; +----------------+----------------+ | CURRENT_USER() | @@bind_address | +----------------+----------------+ | ipv6user@::1 | :: | +----------------+----------------+