MySQL 8.3 Release Notes
以下过程显示如何配置 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_address
设置启动 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 | :: | +-----------------------------------+----------------+