MySQL 8.4 Release Notes
7.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 代理;见第7.1.13.5节,“从代理获取 IPv6 地址”。
-
使用适当的
bind_地址
设置启动 MySQL 服务器,以允许它接受 IPv6 连接。例如,在服务器选项文件中添加以下行,然后重新启动服务器:[mysqld] bind_address = *
将*(或
::
)指定为bind_address
的值,允许在服务器主机所有IPv4和IPv6接口上同时建立IPv4和IPv6连接。如果您想将服务器绑定到特定的地址列表,可以通过指定逗号分隔的值列表来指定bind_address
。例如,这个示例同时指定了IPv4地址和服务器主机所需的IPv6地址:[mysqld] bind_address = 198.51.100.20,2001:db8:0:f101::1
更多信息,请参见
bind_address
在第7.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客户端连接到服务器使用新账户:$> 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 | :: | +-----------------------------------+----------------+