文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL8.0 MIC高可用集群的搭建过程

2023-06-01 05:42

关注

本篇内容主要讲解“MySQL8.0 MIC高可用集群的搭建过程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL8.0 MIC高可用集群的搭建过程”吧!

一,集群部署

1 安装环境;

操作系统:Linux,版本:CentOS-7-x86

介质准备:无

环境清理

释放yum进程

[root@bug ~]# ps -ef|grep yumroot     22481  1694  5 17:23 ?        00:00:03 /usr/bin/python /usr/share/PackageKit/helpers/yum/yumBackend.py get-updates noneroot     22591 22507  1 17:24 pts/    00:00:00 grep --color=auto yum[root@bug ~]# kill -9 22481

查看是否有多余系统,有则卸载

1

2

[root@bug ~]# rpm -qa|grep mairadb

[root@bug ~]# rpm -qa|grep mysql

关闭防火墙

1

2

3

4

[root@bug ~]# systemctl status firewalld.service

● firewalld.service - firewalld - dynamic firewall daemon

   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)

   Active: inactive (dead)

关闭selinux,重启系统后生效

[root@bug selinux]# vi /etc/selinux/configSELINUX=disabled

[root@bug selinux]# reboot

2 安装MySQL8.0

1

2

3

[root@bug ~]# yum install -y wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

[root@bug ~]# yum list|grep mysql

[root@bug ~]# yum install -y mysql-community-client.x86_64 mysql-router.x86_64 mysql-shell.x86_64

采用YUM源安装方式,总下载量约400M,

3自动集群部署

部署节点1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

[root@bug ~]# mysqlsh

 

 MySQL  JS >  dba.deploySandboxInstance(3310);

A new MySQL sandbox instance will be created on this host in

/root/mysql-sandboxes/3310

 

Warning: Sandbox instances are only suitable for deploying and

running on your local machine for testing purposes and are not

accessible from external networks.

 

Please enter a MySQL root password for the new instance: ******

Deploying new MySQL instance...

 

Instance localhost:3310 successfully deployed and started.

Use shell.connect('root@localhost:3310'); to connect to the instance.

第一个节点部署完毕,端口设置为3310,登陆账号为root@localhost,密码 ******

使用本地认证的方式, 登陆数据库实例,进行验证。

1

2

3

[root@bug ~]# mysql -uroot -porange -S /root/mysql-sandboxes/3310/sandboxdata/mysqld.sock

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor.  Commands end with ; or \g.

同样的方法,部署节点2,节点3。

1

2

3

MySQL  JS >  dba.deploySandboxInstance(3320);

 

MySQL  JS > dba.deploySandboxInstance(3330);

4创建集群

此实验采用简单的创建本地集群。

1

2

3

4

5

6

7

8

9

10

11

12

MySQL  JS >  \connect root@localhost:3310

Creating a session to 'root@localhost:3310'

 

*****************************************************

 MySQL  localhost:3310 ssl  JS >  var cluster=dba.createCluster('test')

A new InnoDB cluster will be created on instance 'root@localhost:3310'.

 

*********************************************************

 

Cluster successfully created. Use Cluster.addInstance() to add MySQL instances.

At least 3 instances are needed for the cluster to be able to withstand up to

one server failure.

 集群系统已经创建成功,最后一行:At least 3 instances are needed for the cluster to be able to withstand up to one server failure.提示需要至少三个实例,才能保证灾备,所以接下来,将节点2,3添加进集群。

1

2

3

4

5

6

7

8

MySQL  localhost:3310 ssl  JS > cluster.addInstance( 'root@localhost:3320')

 

The instance 'root@localhost:3320' was successfully added to the cluster.

 

 

 MySQL  localhost:3310 ssl  JS > cluster.addInstance( 'root@localhost:3330')

 

The instance 'root@localhost:3330' was successfully added to the cluster.

查看集群状态

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

MySQL  localhost:3310 ssl  JS > dba.getCluster().status()

{

    "clusterName": "test",

    "defaultReplicaSet": {

        "name": "default",

        "primary": "localhost:3310",

        "ssl": "REQUIRED",

        "status": "OK",

        "statusText": "Cluster is ONLINE and can tolerate up to ONE failure.",

        "topology": {

            "localhost:3310": {

                "address": "localhost:3310",

                "mode": "R/W",

                "readReplicas": {},

                "role": "HA",

                "status": "ONLINE"

            },

            "localhost:3320": {

                "address": "localhost:3320",

                "mode": "R/O",

                "readReplicas": {},

                "role": "HA",

                "status": "ONLINE"

            },

            "localhost:3330": {

                "address": "localhost:3330",

                "mode": "R/O",

                "readReplicas": {},

                "role": "HA",

                "status": "ONLINE"

            }

        }

    },

    "groupInformationSourceMember": "mysql://root@localhost:3310"

}

一个简单的包含三个节点的集群已经创建完成。可以完成数据同步,读写分离等功能,比如此刻3310端口的状态是"R/W",同时read与write,3320与3330的状态是"R/O",只读模式。

5配置中间件

此时的集群的高可用性还不完整,需要MySQL-router来完成集群与外部的对接,实现自动切换,故障转移等功能。

MySQL-router的作用类似keepalived 类的中间件。当主机发生故障后,自动将应用切换到其他实例。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

[root@bug ~]#  mysqlrouter --bootstrap root@localhost:3310 --user=mysqlrouter

Please enter MySQL password for root: *****

 

Bootstrapping system MySQL Router instance...

Checking for old Router accounts

Creating account mysql_router2_j05xzi45m81x@'%'

MySQL Router  has now been configured for the InnoDB cluster 'test'.

 

The following connection information can be used to connect to the cluster.

 

Classic MySQL protocol connections to cluster 'test':

- Read/Write Connections: localhost:6446

- Read/Only Connections: localhost:6447

X protocol connections to cluster 'test':

- Read/Write Connections: localhost:64460

- Read/Only Connections: localhost:64470

 

Existing configurations backed up to '/etc/mysqlrouter/mysqlrouter.conf.bak'

[root@bug ~]# mysqlrouter&

[1] 25602

[root@bug ~]#  ps -ef|grep router

mysqlro+ 25602 22507  8 19:35 pts/0    00:00:01 mysqlrouter

root     25619 22507  0 19:36 pts/0    00:00:00 grep --color=auto router

验证MySQL-router安装效果

在MySQL-router默认配置下,

主机端口:6446

从库端口:6447

1

2

3

4

5

[root@bug ~]#  mysql -uroot -h 127.0.0.1 -P 6446 -p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

********************************************************8

mysql>

 证明MySQL-router配置完成可用。

 1.6验证集群效果

1,通过router同时登陆三个节点,查看端口号。

2,在节点1构造数据,在节点2,3差看状态,验证数据同步性。

3,节点1(主机)离线,查看集群状态与节点2,节点3状态,验证灾备能力。

到此,相信大家对“MySQL8.0 MIC高可用集群的搭建过程”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯