加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_新乡站长网 (https://www.0373zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

安装mysql数据可集群_MySQL集群搭建实现高可用

发布时间:2022-11-23 11:28:57 所属栏目:MySql教程 来源:
导读:  MySQL集群概述和安装环境

  MySQL Cluster是MySQL适合于分布式计算环境的高实用、高冗余版本。Cluster的汉语是"集群"的意思。它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器。
  MySQL集群概述和安装环境
 
  MySQL Cluster是MySQL适合于分布式计算环境的高实用、高冗余版本。Cluster的汉语是"集群"的意思。它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器。
 
  MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署"内存中"数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。
 
  SQL节点: 给上层应用层提供sql访问。
 
  存储/数据节点: 保存cluster中的数据。 数据节点,可以提供副本。实现数据冗余。
 
  管理节点(MGM): 管理整个集群。 启动,关闭集群。 通过ndb_mgmd命令启动集群
 
  在我们做的实验中mysql cluster集群各机器角色如下分配:
 
  mysql 管理结点:xuegod63.cn IP:192.168.1.63 (安装server、client)
 
  mysql 数据结点:xuegod64.cn IP:192.168.1.64 (安装server、client)
 
  mysql 数据结点:xuegod65.cn IP:192.168.1.65 (安装server、client)
 
  msyql SQL结点:xuegod66.cn IP:192.168.1.66 (安装server、client)
 
  msyql SQL结点:xuegod67.cn IP:192.168.1.67 (安装server、client)
 
  Mysql cluster的下载地址:
 
  环境清理以及安装
 
  这一部分虽然是初始过程但是比较复杂,请大家耐心配置。
 
  所有主机上执行下面内容:
 
  首先我们要清除旧版本,然后安装mysql cluster,最后是文件权限管理。
 
  1.mysql旧版本清除
 
  首先使用如下命令来清理之前操作系统自带的mysql安装:
 
  yum -y remove mysql
 
  yum –y remove maridb*(centos7)
 
  然后使用如下命令:
 
  rpm -qa | grep mysql
 
  rpm -qa | grep maridb
 
  对于找到的2个剩余mysql包,请按照如下的命令格式予以删除:
 
  rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
 
  最后删掉下列文件:
 
  rm-rf /var/lib/mysql/*
 
  rm-rf /etc/my.cnf
 
  rm-rf /etc/init.d/mysqld
 
  vim /etc/profile删除与mysql相关内容
 
  2. mysql cluster 7.5版本安装
 
  2.1上传并安装最新的EPEL源 和 mysql社区版源安装包
 
  [root@xuegod63 ~]# rpm -ihv epel-release-7-10.noarch.rpm
 
  [root@xuegod63 ~]# rpm -ihv mysql57-community-release-el7-11.noarch.rpm
 
  2.2开启mysql cluster 源
 
  [root@xuegod63 ~]# sed -i "55s/0/1/g" /etc/yum.repos.d/mysql-community.repo
 
  2.3刷新yum源缓存
 
  [root@xuegod63 ~]# yum clean all && yum list
 
  2.4安装解决Cluster的依赖包
 
  [root@xuegod63 ~]# yum install -y perl perl-Class-MethodMaker perl-DBI libaio numactl
 
  2.5安装Mysql Cluster
 
  [root@xuegod63 ~]# yum install -y mysql-cluster-community-server
 
  2.6查看安装路径
 
  [root@xuegod63 ~]# rpm -ql mysql-cluster-community-server
 
  其他4台主机上重复2.1—2.5的步骤
 
  3.数据节点主机都要安装数据节点的相关包(2台)
 
  [root@xuegod64 ~]# yum install -y mysql-cluster-community-data-node
 
  [root@xuegod65 ~]# yum install -y mysql-cluster-community-data-node
 
  4.管理节点安装management管理包
 
  [root@xuegod63~]# yum -y install mysql-cluster-community-management-server
 
  5.创建文件夹
 
  管理节点创建配置目录:
 
  [root@xuegod63~]#mkdir -p /usr/mysql-cluster/
 
  搭建mysql集群
 
  1.1各个机器上的配置
 
  我们先将需求配置到各台机器上
 
  1.xuegod63创建管理节点上配置文件
 
  [root@xuegod63 ~]vim /usr/mysql-cluster/config.ini #写入以下内容
 
  [ndbd default]
 
  NoOfReplicas=2 #数据写入数量。2表示两份
 
  DataMemory=200M #配置数据存储可使用的内存
 
  IndexMemory=100M #索引给100M
 
  [ndb_mgmd]
 
  nodeid=1
 
  datadir=/var/lib/mysql #管理结点的日志
 
  HostName=192.168.1.63 #管理结点的IP地址。本机IP
 
  ###### data node options: #存储结点
 
  [ndbd]
 
  HostName=192.168.1.64
 
  DataDir=/var/lib/mysql #mysql数据存储路径
 
  nodeid=2
 
  [ndbd]
 
  HostName=192.168.1.65
 
  DataDir=/var/lib/mysql #mysql数据存储路径
 
  nodeid=3
 
  # SQL node options: #关于SQL结点
 
  [mysqld]
 
  HostName=192.168.1.66
 
  nodeid=4
 
  [mysqld]
 
  HostName=192.168.1.67
 
  nodeid=5
 
  在这个文件里,分别给五个节点分配了ID,这有利于更好的管理和区分各个节点。当然,要是不指定,MySQL也会动态分配一个
 
  2.xuegod64、xuegod65数据节点
 
  [root@xuegod64 /]# vim /etc/my.cnf#请配置xuegod65一样
 
  [root@xuegod65 /]# vim /etc/my.cnf
 
  [mysqld]
 
  datadir=/var/lib/mysql #mysql数据存储路径
 
  ndbcluster #启>动ndb引擎
 
  ndb-connectstring=192.168.1.63 # 管理节点IP地址
 
  [mysqld_safe]
 
  log-error=/var/log/mysqld.log
 
  pid-file=/var/run/mysqld/mysqld.pid
 
  [mysql_cluster]
 
  ndb-connectstring=192.168.1.63 #管理节点IP地址
 
  3. SQL节点配置文档:
 
  [root@xuegod66~]#vim /etc/my.cnf #请配置xuegod67一样
 
  [root@xuegod67~]#vim /etc/my.cnf
 
  [mysqld]
 
  ndbcluster #启动ndb引擎
 
  ndb-connectstring=192.168.1.63 #管理节点IP地址
 
  [mysqld_safe]
 
  log-error=/var/log/mysqld.log
 
  pid-file=/var/run/mysqld/mysqld.pid
 
  [mysql_cluster]
 
  ndb-connectstring=192.168.1.63 #管理节点IP地址
 
  说明:数据节点和SQL结点配置文件区别 ,就多一行
 
  数据结点有:datadir=/var/lib/mysql#mysql数据存储路径。
 
  而SQL节点上没有。
 
  1.2 MySQL Cluster启动
 
  初次启动命令以及用户密码更改调整:(请严格按照次序启动)
 
  先启动:管理结点服务->数据结点服务->sql结点服务
 
  关闭:关闭管理结点服务,关闭管理结点服务后,nbdb数据结点服务会自动关闭->手动把sql结点服务关了。
 
  执行初次启动前请先确认 将两台机器的防火墙关闭(service iptables stop 或者 设定 防火墙端口可通,两个端口即通讯端口1186、数据端口3306 )
 
  xuegod63上启动管理结点命令
 
  [root@xuegod67 ~]#ndb_mgmd --ndb_nodeid=1 --initial -f /usr/mysql-cluster/config.ini
 
  #尽量不要把 管理结点、 数据结点、存储结点 配置在同一台机子上mysql集群,否则一个挂了,就全挂了。
 
  查看端口号:
 
  [root@xuegod63~]# netstat -antup | grep 1186
 
  tcp00 0.0.0.0:11860.0.0.0:*LISTEN 7057/ndb_mgmd
 
  tcp00 127.0.0.1:1186127.0.0.1:60324ESTABLISHED 7057/ndb_mgmd
 
  tcp00 127.0.0.1:60324127.0.0.1:1186ESTABLISHED 7057/ndb_mgmd
 
  2. xuegod64和xuegod65启动数据节点服务
 
  [root@xuegod68 ~]# ndbd --initial
 
  [ndbd] INFO -- Angel connected to '10.10.10.67: 1186'
 
  [ndbd] INFO -- Angel allocated nodeid: 2
 
  [root@xuegod69 ~]# ndbd --initial
 
  [ndbd] INFO -- Angel connected to '10.10.10.67: 1186'
 
  [ndbd] INFO -- Angel allocated nodeid: 3
 
  3. xuegod66、xuegod67启动SQL结点服务
 
  [root@xuegod66~]#systemctl start mysqld
 
  [root@xuegod66 ~]#systemctl start mysqld
 
  4.查看mysql集群状态:
 
  [root@xuegod67 ~]#ndb_mgm
 
  ndb_mgm> show
 
  Cluster Configuration
 
  ---------------------
 
  [ndbd(NDB)]2 node(s)
 
  id=2@192.168.1.64 (mysql-5.7.22 ndb-7.5.10, Nodegroup: 0, *)
 
  id=3@192.168.1.65 (mysql-5.7.22 ndb-7.5.10, Nodegroup: 0)
 
  [ndb_mgmd(MGM)]1 node(s)
 
  id=1@192.168.1.63 (mysql-5.7.22 ndb-7.5.10)
 
  [mysqld(API)]2 node(s)
 
  id=4@192.168.1.66 (mysql-5.7.22 ndb-7.5.10)
 
  id=5@192.168.1.67 (mysql-5.7.22 ndb-7.5.10)
 
  5.数据同步实验测试
 
  我们就需要在此之前改一下两台机器mysql的密码。
 
  [root@xuegod66 ~]# grep password /var/log/mysqld.log
 
  2018-07-02T16:01:46.008448Z 1 [Note] A temporary password is generated for root@localhost:lCUouyg(k2?F
 
  在my.cnf文件中mysqld下面添加 validate-password=off
 
  重启mysql
 
  [root@xuegod66 ~]# systemctl restart mysqld
 
  [root@xuegod66 ~]# mysql -u root -p'lCUouyg(k2?F'
 
  mysql: [Warning] Using a password on the command line interface can be insecure.
 
  Welcome to the MySQL monitor. Commands end with ; or \g.
 
  Your MySQL connection id is 6
 
  Server version: 5.7.22-ndb-7.5.10-cluster-gpl
 

(编辑:开发网_新乡站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!