galeracluster高可用集群安装(mysql)

参考文档 https://galeracluster.com/library/documentation/install-mysql.html
参考书籍:数据中台建设实战

文章基于centos7 mysql-8.0.28安装笔记,其他服务器及mysql版本可参考官方文档

本次安装使用3个服务器节点,分别为node154,node155,node156。

1. 设置存储库

如果需要不同版本只需更改baseurl地址即可。对应版本地址可通过 https://releases.galeracluster.com/ 查找

cat > /etc/yum.repos.d/galera.repo <<EOF
[galera]
name = Galera
baseurl = https://releases.galeracluster.com/galera-4.12/centos/7/x86_64
gpgkey = https://releases.galeracluster.com/GPG-KEY-galeracluster.com
gpgcheck = 1

[mysql-wsrep]
name = MySQL-wsrep
baseurl =  https://releases.galeracluster.com/mysql-wsrep-8.0.28-26.10/centos/7/x86_64
gpgkey = https://releases.galeracluster.com/GPG-KEY-galeracluster.com
gpgcheck = 1
EOF

2. 安装

yum install -y galera-4 mysql-wsrep-8.0

3. 配置my.cnf文件

节点一配置如下,其他节点修改wsrep_node_name和wsrep_node_address即可

cat /etc/my.cnf <<EOF
!includedir /etc/my.cnf.d/
[mysqld]
max_connections=1000
max_connect_errors=10000
datadir=/data/module/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
binlog_format=ROW
bind-address=0.0.0.0
default_storage_engine=innodb
innodb_autoinc_lock_mode=2
innodb_flush_log_at_trx_commit=0
innodb_buffer_pool_size=122M
character-set-server=utf8
collation-server=utf8_general_ci
character_set_server=utf8
collation_server=utf8_general_ci
wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so
wsrep_provider_options="gcache.size=300M; gcache.page_size=300M"
wsrep_cluster_name="mysql_cluster"
wsrep_cluster_address="gcomm://node154,node155,node156"
wsrep_node_name="node154"
wsrep_node_address="172.20.17.154"
wsrep_sst_method=rsync

[mysql_safe]
log-error=/data/module/mysql/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
EOF

wsrep_provider: 指定 wsrep provider 文件的位置,Galera使用这个 provider 来实现数据的 Replication,不同操作系统下这个文件的位置可能不一样,请注意提前确认文件位置。三个节点该项配置相同。

wsrep_provider_options:为 wsrep provider 指定一些参数,如本例中指定了缓存及缓存页的大小。三个节点该项配置相同。

wsrep_cluster_name:为整个 cluster 取名,集群内节点需配置同样的值,不同名称会导致该节点无法加入集群。三个节点该项配置相同。

wsrep_cluster_address:集群的IP地址,由每个节点的IP地址拼接,中间使用“,”分隔,前面加gcomm://前缀。三个节点该项配置相同。

wsrep_node_name:当前节点的逻辑名称,与机器名同名即可。三个节点配置不同

wsrep_node_address:当前节点的IP。三个节点配置不同。

wsrep_sst_method:用来指明实施SST时使用的方法。三个节点该项配置相同。

4. 启动

# 注意mysql datadir的文件夹权限,给mysql用户授权
mkdir -p /data/module/mysql
useradd mysql
chown -R mysql.mysql /data/module/mysql

# 注意: 在启动第一个节点之前先检查一下mysql是否已启动,如果已启动,先关闭mysql服务,同时关闭自动启动。因为在节点一上必须通过mysqld_bootstrap启动服务。
systemctl stop mysqld
systemctl disable mysqld


# 启动第一个节点与其他节点启动方式不同,这里用node154作为第一个节点

[root@node154 ~]# /usr/bin/mysqld_bootstrap

# 查看是否成功运行
[root@node154 ~]# systemctl status mysqld


5. 登录主节点并检查集群状态

# 查看默认密码
grep -i password /var/log/messages

# 找到临时密码,重置密码后登录
mysqladmin -uroot -p password 'XXXX'
mysql -uroot -pXXXX

# 检查集群规模
SHOW STATUS LIKE 'wsrep_cluster_size';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 1    |
+--------------------+-------+

# 此时 wsrep_cluster_size 应该为1 如果不是1,请检查my.cnf配置文件是否有误

6. 启动其他节点

# 其他节点不是  /usr/bin/mysqld_bootstrap,直接 
systemctl start mysqld

# 其他两个节点都启动后,再次查看集群
SHOW STATUS LIKE 'wsrep_cluster_size';

# 此时集群规模已经变为3,说明新启动的节点已加入集群

在这里插入图片描述

7. 测试同步

连接三台节点Mysql。galera为多主架构,任意节点操作都会互相同步。
分别在三个节点建库、建表、插入数据
在这里插入图片描述

8.1 在node154节点登录,创建数据库,看是否同步

在这里插入图片描述
三个节点均能查看到test库
在这里插入图片描述
8.2 在node155节点登录,创建表,看是否同步
在这里插入图片描述
三个节点均能查看到test库中的test表
在这里插入图片描述
8.3 在node156节点登录,插入数据,看是否同步
在这里插入图片描述
三台查看,数据均一致。自增ID不是1、2而是3、6,是因为会根据集群的大小自动调整auto_increment_increment和auto_increment_offset变量。 避免由于auto_increment而引起的复制冲突。
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值