Documentation Home
MySQL 8.0 参考手册  / 第 5 章 MySQL 服务器管理  / 5.1 MySQL 服务器  / 5.1.13 IPv6 支持  /  5.1.12.4 使用 IPv6 非本地主机地址连接

5.1.12.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.12.5 节,“从代理获取 IPv6 地址”

  1. 使用适当的 bind_address设置启动 MySQL 服务器以允许它接受 IPv6 连接。例如,将以下行放入服务器选项文件并重新启动服务器:

    [mysqld]
    bind_address = *

    或者,您可以将服务器绑定到 2001:db8:0:f101::1,但这会使服务器对 TCP/IP 连接更具限制性。它仅接受该单个地址的 IPv6 连接并拒绝 IPv4 连接。有关详细信息,请参阅 第 5.1.7 节“服务器系统变量”bind_address中的描述 。

  2. 在服务器主机 ( 2001:db8:0:f101::1) 上,为从客户端主机 ( ) 连接的用户创建一个帐户2001:db8:0:f101::2

    mysql> CREATE USER 'remoteipv6user'@'2001:db8:0:f101::2' IDENTIFIED BY 'remoteipv6pass';
  3. 在客户端主机 ( 2001:db8:0:f101::2) 上,调用mysql客户端使用新帐户连接到服务器:

    $> mysql -h 2001:db8:0:f101::1 -u remoteipv6user -premoteipv6pass
  4. 尝试一些显示连接信息的简单语句:

    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 | ::             |
    +-----------------------------------+----------------+