- GreatSQL社區原創內容未經授權不得隨意使用,轉載請聯系小編并注明來源,
- GreatSQL是MySQL的國產分支版本,使用上與MySQL一致,
- 作者:王權富貴
- 文章來源:社區原創
1.概述
本文基于 GreatSQL 8.0.25-16 ,以下測驗均使用此版本,
MySQL支持IPv6,創建用戶時主機部分可以指定IPv6的地址,可以通過IPv6連接到MySQL服務器,從MySQL 8.0.14開始,組復制組成員可以在組內使用IPv6地址進行通信,
此次在測驗環境中使用IPv6地址進行MGR的部署,分享一下使用IPv6部署MGR時,設定關于MGR引數需注意的地方,
2.查看本機IPv6地址
執行 ip a 在輸出內容中查找當前使用的網卡的IPv6地址
shell> ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:16:**:**:**:b4 brd ff:ff:ff:ff:ff:ff
inet 192.168.***.***/20 brd 192.168.***.255 scope global noprefixroute dynamic eth0
valid_lft 259198sec preferred_lft 259198sec
inet6 fe80::216:3eff:fed0:bab4/64 scope link
valid_lft forever preferred_lft forever
- inet6 后面的地址就是IPv6的地址,
- 注意 eth0網卡下的IPv6地址后面有 scope link 表示此地址為本地鏈路地址,以鏈路本地地址為源地址或目的地址的IPv6報文不會被路由設備轉發到其他鏈路,因此不能用于部署MGR,
3.配置ipv6靜態地址
由于上面的本地鏈路地址我們不能直接使用,因此我們可以配置一個IPv6的靜態地址,每臺機器都要配置,
這里我們使用IPv6(ULA,unique local address)唯一本地地址,該地址類似于IPv4中的私網地址,使用FD00:/8這個網段的地址,
shell> vim /etc/sysconfig/network-scripts/ifcfg-eth0
....
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6_FAILURE_FATAL=no
IPV6ADDR=fd00::10/8
添加上面的內容到 ifcfg-eth0 檔案,
4.重啟網路服務
shell> systemctl restart network
5.再次查看本地IPv6地址
shell> ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:16:**:**:**:b4 brd ff:ff:ff:ff:ff:ff
inet 192.168.***.***/20 brd 192.168.***.255 scope global noprefixroute dynamic eth0
valid_lft 259198sec preferred_lft 259198sec
inet6 fd00::10/8 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::216:3eff:fed0:bab4/64 scope link noprefixroute
valid_lft forever preferred_lft forever
可以看到配置的IPv6地址已經生效,同樣的方式配置其他機器,
6.使用IPv6部署MGR需要注意的地方
這里主要說明一下,使用IPv6部署MGR時,設定關于MGR引數需注意的地方,部署MGR的步驟,我們這里不再重復了,可以參考GreatSQL安裝部署MGR集群檔案:https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/deep-dive-mgr/deep-dive-mgr-03.md
(1)設定 bind_address 引數
設定bind_address系統變數,以指定實體接受的TCP/IP連接,
[mysqld]
bind_address = *
設定為 * 值(默認值)或 ::,表示允許所有服務器主機同時連接IPv4和IPv6,也可以設定為特定的IP地址串列,
(2)IPv6地址需要用 [] 括起來
在設定引數 group_replication_local_address 和 group_replication_group_seeds 的值時,需要將每個IPv6的地址用 [] 括起來,如下所示:
[mysqld]
group_replication_local_address='[fd00::10]:33061';
group_replication_group_seeds='[fd00::10]:33061,[fd00::20]:33061,[fd00::30]:33061';
(3)手動指定allowlist
由于MGR默認的allowlist范圍如下:
IPv4 (as defined in RFC 1918)
10/8 prefix (10.0.0.0 - 10.255.255.255) - Class A
172.16/12 prefix (172.16.0.0 - 172.31.255.255) - Class B
192.168/16 prefix (192.168.0.0 - 192.168.255.255) - Class C
IPv6 (as defined in RFC 4193 and RFC 5156)
fc00:/7 prefix - unique-local addresses
fe80::/10 prefix - link-local unicast addresses
127.0.0.1 - localhost for IPv4
::1 - localhost for IPv6
我們所設定的IPv6地址不在這個范圍,所以需要將這些IPv6的地址加入allowlist,可以將每個IPv6的地址寫入,也可以使用 CIDR notation 這種方法表示,
[mysqld]
group_replication_ip_allowlist='fd00::/8';
7.使用IPv6本地主機地址連接
(1)使用管理員賬戶登錄,創建可以在本機通過IPv6回環地址(::1)進行連接的賬戶
mysql> create user test1@'::1' identified by 'greatsql';
(2)登錄test1賬戶
shell> mysql -utest1 -pgreatsql -h ::1 -P3306
mysql> select user(),current_user();
+-----------+----------------+
| user() | current_user() |
+-----------+----------------+
| test1@::1 | test1@::1 |
+-----------+----------------+
1 row in set (0.00 sec)
8.使用IPv6遠程主機地址連接
(1)使用管理員賬戶登錄,為IPv6地址為 fd00::20 的主機創建可以連接的賬戶
mysql> create user test2@'fd00::20' identified by 'greatsql';
(2)登錄test2賬戶
shell> mysql -utest2 -pgreatsql -h fd00::20 -P3306
mysql> select user(),current_user();
+----------------+----------------+
| user() | current_user() |
+----------------+----------------+
| test2@fd00::20 | test2@fd00::20 |
+----------------+----------------+
1 row in set (0.00 sec)
Enjoy GreatSQL ??
關于 GreatSQL
GreatSQL是由萬里資料庫維護的MySQL分支,專注于提升MGR可靠性及性能,支持InnoDB并行查詢特性,是適用于金融級應用的MySQL分支版本,
相關鏈接: GreatSQL社區 Gitee GitHub Bilibili
GreatSQL社區:
捉蟲活動詳情:https://greatsql.cn/thread-97-1-1.html
社區博客有獎征稿詳情:https://greatsql.cn/thread-100-1-1.html

技術交流群:
微信:掃碼添加
GreatSQL社區助手微信好友,發送驗證資訊加群,

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/540486.html
標籤:MySQL
上一篇:MySQL-執行計劃
