CentOS7.6 Mysql5.7 Galera3.25 Cluster

Mysql5.7.31 Galera3.25 Cluster部署

主机清单:

主机hostnameIP操作系统集群节点
cen34192.168.1.34CentOS-7.6_1810_x86_64 第一主节点(个人起的名字)
cen35192.168.1.35CentOS-7.6_1810_x86_64 主节点
cen36192.168.1.36CentOS-7.6_1810_x86_64 主节点

 一、安装文件准备:

 mysql及Galera安装文件下载:

官网地址:https://galeracluster.com/downloads/

Galera3对应的mysql版本主要是5.5~5.7,Galera4对应的版本是mysql8

Mysql和Galera其他版本下载地址:http://releases.galeracluster.com/

将下载好的文件传给各主机,我放在/mnt/mysql_cluster

二、安装环境准备(各主机需要操作):

2.1 关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

2.2 关闭selinux(这一步不知道是否是必须的,我的各主机是关闭的)

vi /etc/selinux/config

设置主要参数及值:

 SELINUX=disabled

2.3 卸载mysql或者自带的Mariadb   

查询已安装的mysql文件

rpm -qa | grep mysql 

卸载安装的mysql(如果查询到系统中有mysql就卸载,查不到直接跳过) 

rpm -e --nodeps mysql.xxx

查询已安装的MariaDB文件(CentOS7 默认带MariaDB数据库,需要卸载)

rpm -qa | grep mariadb

卸载安装的MariaDB

rpm -e --nodeps mariadb.xxx

2.4 安装依赖

yum -y install lsof net-tools perl socat openssl openssl-devel boost-devel rsync

三、操作步骤(各主机操作)

各主机安装过程一样,先装mysql(安装mysql-wsrep-test-5.7-5.7.31-25.23.el7.x86_64.rpm的时候会提示perl(json)依赖,此前已经装过估计出现冲突或者其他原因可以忽略,mysql-test这个包可以不装):

3.1 安装mysql

cd /mnt/mysql_cluster

rpm -ivh --nodeps mysql-wsrep*.rpm

3.2 安装Galera3.25

rpm -ivh galera-3-25.3.31-1.el7.x86_64.rpm

安装完成后进行mysql配置如下。

四、数据库集群配置

4.1 启动mysql,并设置开机启动

systemctl start mysqld

systemctl enable mysqld

4.2 设置root密码,同时创建同步用户

查看mysql安装的默认密码并复制:less /var/log/mysqld.log | grep password

登录mysql(输入刚才复制的密码):

mysql -u root -p

set global validate_password_policy=0;

set global validate_password_length=0;

修改root密码

alter user 'root'@'localhost' identified by 'password';

set password=password('password');

创建同步用户

grant all on *.* to 'syncuser'@'192.168.1.%' identified by 'password';

flush privileges;

4.3 配置Galera集群第一主节点(第一主节点的配置内容和其他主节点的配置内容略有不同)

vi /etc/my.cnf 在最后加入下边内容(第一主节点):

#集群配置
server_id=34
binlog_format=row
default_storage_engine=InnoDB
innodb_file_per_table=1
innodb_autoinc_lock_mode=2

wsrep_on=ON
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
wsrep_cluster_name='mygalera'
wsrep_cluster_address='gcomm://'
wsrep_node_name='cen34'
wsrep_node_address='192.168.1.34'
wsrep_sst_auth=syncuser:admin
wsrep_sst_method=rsync

说明:

server_id=34  :节点id,确保各主机mysql的此ID在集群中唯一

wsrep_cluster_name='mygalera'   :集群名称(确保各节点一致)

wsrep_cluster_address='gcomm://'  : 第一主节点就是这么配,原因是什么不清楚。其他节点此值为非本节点IP列表(以逗号分隔)

wsrep_node_name :本节点主机名

wsrep_node_address :本节点ip

wsrep_sst_auth :同步用户名及密码

wsrep_sst_method=rsync :同步方式,网上看过其他同步方式,在此使用rsync。不管用哪种同步方式都需要安装相应的工具

4.4 配置Galera集群其他节点

操作方式和4.2一样,只是配置不同

cen35配置:

#集群配置
server_id=35 
binlog_format=row
default_storage_engine=InnoDB
innodb_file_per_table=1
innodb_autoinc_lock_mode=2

wsrep_on=ON
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
wsrep_cluster_name='mygalera'  
wsrep_cluster_address='gcomm://192.168.1.34,192.168.1.36'  
wsrep_node_name='cen35' 
wsrep_node_address='192.168.1.35'
wsrep_sst_auth=syncuser:admin
wsrep_sst_method=rsync

cen36配置:

#集群配置

server_id=36
binlog_format=row
default_storage_engine=InnoDB
innodb_file_per_table=1
innodb_autoinc_lock_mode=2

wsrep_on=ON
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
wsrep_cluster_name='mygalera'
wsrep_cluster_address='gcomm://192.168.1.34,92.168.1.35'
wsrep_node_name='cen36'
wsrep_node_address='192.168.1.36'
wsrep_sst_auth=syncuser:admin
wsrep_sst_method=rsync

4.5 启动集群各节点服务(启动顺序有要求)

先启动第一主节点cen34,再启动其他节点,关闭的时候先关闭其他节点,最后关闭第一主节点,否则集群启动不了,需要处理(具体怎么处理后面会说)。

systemctl restart mysqld

依次启动各节点后查看同步状态信息

4.6 查看集群信息

可登陆各节点mysql查询(登陆后执行如下查询命令)

show status like 'wsrep%';

4.7 测试同步功能(简单测试)

在数据库访问客户端登陆各节点(cen34,cen35,cen36),

在cen36创建测试库testdb,创建测试表test_tb

在cen34,cen35刷新后可看到cen36上创建的库表

五 启动失败处理

启动失败原因有很多,其他情况不清楚怎么解决,这里只介绍没有按照启动顺序和关闭顺序启动的这种情况:

当没有按照节点关闭顺序停止服务的时候,再次启动集群将导致各节点无法启动

正确启动顺序:先起第一主节点,再启动后面各节点

正确关闭顺序:先关闭非第一主节点,最后关闭第一主节点

处理办法:

在各节点编辑文件(/var/lib/mysql/grastate.dat):vi /var/lib/mysql/grastate.dat

确保各节点该文件中safe_to_bootstrap: 0,这个参数的值都为0,或者只有第一主节点的此值为1,其他节点此值为0

ps:说是多主集群,感觉这种配置方式第一主节点挂掉后,想再启动集群肯定是启动不了的。网上还有其他配置方式,暂时还没有尝试。有空了尝试一下其他配置方式再更新。

上述信息主要参考如下文章,感谢他们分享:

https://www.pianshen.com/article/27451587419/

博主:wzy0623    https://blog.csdn.net/wzy0623/article/details/102607193   

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值