Galera集群--搭建(2个数据节点+1个仲裁)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

安装准备

安装包: mariadb-galera-10.0.15-linux-x86_64.tar.gz

测试环境

ip        hostname    备注

192.168.1.111   test1       节点1

192.168.1.112   test2       节点2

192.168.1.113   test3       仲裁节点


1,关闭selinux:

将/etc/sysconfig/selinux 的selinux 设置成 disabled


2,修改或者关闭防火墙

  修改防火墙:

vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 4444 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 4567 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 4568 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 4569 -j ACCEPT

service iptables restart

  关闭防火墙:

systemctl stop firewalld  service iptables stop


安装lsof (不装可能无法启动数据库)

yum install -y lsof


3,安装数据库mariadb

下载安装包: mariadb-galera-10.0.15-linux-x86_64.tar.gz

解压 

tar zxf mariadb-galera-10.0.15-linux-x86_64.tar.gz

修改地址 

mv mariadb-galera-10.0.15-linux-x86_64 /usr/local/mysql

创建mysql用户

groupadd mysql

useradd -g mysql mysql

chmod mysql:mysql -Rf /usr/local/mysql

chmod +x -Rf /usr/local/mysql

cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf

初始化数据库

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

添加mysql到开机启动

chkconfig mysql on

启动mysql

service mysqld start

设置mysql命令

vi /etc/profile

添加 export PATH=/usr/local/mysql/bin:$PATH

source /etc/profile

设置mysql密码

mysqladmin -u root passwd '123456'

实用root登录

mysql -uroot -p123456


4,搭建galera集群

注:mariadb-galera-10.0.15-linux-x86_64.tar.gz里面已经有了galera插件,也可以下载安装galera安装,集群中的软件版本必须保持一致

先启动111,再启动112,最后加入仲裁(启动顺序不同,wsrep.cnf文件中wsrep_cluster_address的配置略有不同)

安装galera

yum install -y galera


查找wsrep.cnf 文件

find / -name wsrep.cnf

结果:

find :  .... /usr/local/mysql/support-files/wsrep.cnf

复制这个文件到etc/下

cp /usr/local/mysql/support-files/wsrep.cnf /etc/my.cnf.d/

修改配置文件

vi /etc/my.cnf.d/wsrep.cnf

wsrep_cluster_name="my_wsrep_cluster"

wsrep_provider=/usr/lib64/galera/libgalera_smm.so

wsrep_cluster_address=gcomm://

#第一个节点启动,上面地址为空,后面节点加入集群,gcomm后面要加上集群的ip地址,非默认的4567端口时,地址格式为ip:port

#wsrep_cluster_address=gcomm://192.168.1.112

wsrep_node_name='localhost'

wsrep_node_address=192.168.1.111

wsrep_sst_method=rsync


修改/etc/my.cnf

vim /etc/my.cnf

添加语句 !includedir /etc/my.cnf.d/

注释掉语句 #binlog_format=mixed

server-id = 1


配置112中的galera,server-id为2,修改节点地址和集群gcomm地址

wsrep_cluster_address=gcomm://192.168.1.111

wsrep_node_name='localhost'

wsrep_node_address=192.168.1.112


server-id = 2


5,设置数据库的访问账号和权限


mysql -u root -p123456

>grant all privileges on *.* to 'root'@'localhost' identified by '123456';

>grant all privileges on *.* to 'root'@'%' identified by '123456';

>flush privileges;

修改wsrep.cnf文件相应部分

vim /etc/my.cnf.d/wsrep.cnf

wsrep_sst_auth=root:


6,启动集群

先启动111,再启动112,最后加入113仲裁节点

在111和112上先后执行 service mysqld start

在113仲裁上执行

(启动仲裁节点时候,可能遇到缺少libssl.so.6文件,需要用ln添加软连接)

garbd -a "gcomm://192.168.1.111:4567,192.168.1.112:4567 -g my_wsrep_cluster -d

修改仲裁节点的监听端口,防止与数据库冲突

garbd -a "gcomm://192.168.1.111:4567,192.168.1.112:4567?gmcast.listen_addr=tcp://0.0.0.0:4569&pc.wait_prim=no" -g my_wsrep_cluster -d

113执行命令后,用ps -ef|grep garbd 查看进程


7,查看集群状态

113执行命令后,用ps -ef|grep garbd 查看进程

在111和112上查看数据库中状态

mysql -uroot -p123456

>show status like 'wsrep%';

查看wsrep_incoming_addresses    192.168.1.111:3306,192.168.1.112:3306,

  wsrep_cluster_size        3

完成集群

















本文转自super李导51CTO博客,原文链接:http://blog.51cto.com/superleedo/1893204 ,如需转载请自行联系原作者


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
Kubernetes 应用服务中间件 Linux
多Master节点的k8s集群部署
多Master节点的k8s集群部署
|
3月前
|
存储 Kubernetes 负载均衡
在k8S中,Master节点高可用是如何做的?
在k8S中,Master节点高可用是如何做的?
|
4月前
分布式篇问题之集群(Cluster)模式主控节点的高可用性问题如何解决
分布式篇问题之集群(Cluster)模式主控节点的高可用性问题如何解决
|
4月前
|
消息中间件 NoSQL 中间件
MongoDB主从结构、仲裁节点
【7月更文挑战第2天】
56 0
|
6月前
|
Kubernetes 应用服务中间件 nginx
使用kubeadm搭建生产环境的多master节点k8s高可用集群
使用kubeadm搭建生产环境的多master节点k8s高可用集群
526 0
|
6月前
|
Kubernetes Cloud Native 虚拟化
云原生|kubernetes|找回丢失的etcd集群节点---etcd节点重新添加,扩容和重新初始化k8s的master节点
云原生|kubernetes|找回丢失的etcd集群节点---etcd节点重新添加,扩容和重新初始化k8s的master节点
227 0
|
存储 NoSQL
Cassandra集群删除宕机节点
Cassandra集群删除宕机节点
Cassandra集群删除宕机节点
|
Kubernetes 容器
【k8s】单节点master部署
文章目录 前言 一、部署k8s(二进制) 1.1 架构
340 0
|
NoSQL Redis
Redis Cluster集群收缩主从节点详细教程
文章目录 Redis Cluster集群收缩主从节点 1.Cluster集群收缩概念 2.将6390主节点从集群中收缩 2.1.计算需要分给每一个节点的槽位数 2.2.分配1365个槽位给192.168.81.210的6380节点 2.3.分配1365个槽位给192.168.81.220的6380节点 2.4.分配1365个槽位给192.168.81.230的6380节点 2.5.查看当前集群槽位分配 3.验证数据迁移过程是否导致数据异常 4.将下线的主节点从集群中删除 4.1.删除节点 4.2.调整主从交叉复制 4.3.当节点存在数据无法删除 5.将下线主机清空集群信息
278 0
Redis Cluster集群收缩主从节点详细教程
|
Kubernetes 网络协议 网络安全
安装k8s Master高可用集群
安装k8s Master高可用集群 主机 角色 组件 172.18.6.101 K8S Master Kubelet,kubectl,cni,etcd 172.18.6.102 K8S Master Kubelet,kubectl,cni,etcd 172.
3574 0