5.1.13.4使用IPv6非本地主机地址进行连接
以下过程显示了如何配置MySQL以允许远程客户端进行IPv6连接。与本地客户端的上述过程相似,但是服务器和客户端主机是不同的,并且每个主机都有自己的非本地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连接。如果要将服务器绑定到特定的地址列表,则可以从MySQL 8.0.13开始,通过为指定一个用逗号分隔的值列表来执行此操作 bind_address。本示例指定一个IPv4地址以及所需的服务器主机IPv6地址:
[mysqld]
bind_address = 198.51.100.20,2001:db8:0:f101::1
欲了解更多信息,请参阅 bind_address在描述 第5.1.8节,“服务器系统变量”。
在服务器主机(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 | :: |
±----------------------------------±---------------+




