CentOS7使用官方YUM源安装Mariadb Galera集群

一、安装Mariadb数据库前的准备工作

1、安装CentOS7,三台虚拟机(IP分别为172.16.10.101,172.16.10.102,172.16.10.103)

2、添加Mariadb官方YUM源,下面以Mariadb 10.1为例

官方YUM源编辑器

使用以下命令快速添加YUM源

# tee /etc/yum.repos.d/mariadb.repo <<-'EOF'
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF

3、由于Mariadb服务器是在国外,速度较慢,可以使用国内镜像源替代,以USTC镜像源为例

# sed -i 's#yum\.mariadb\.org#mirrors.ustc.edu.cn/mariadb/yum#' /etc/yum.repos.d/mariadb.repo

4、刷新YUM缓存

# yum makecache

5、查看Mariadb相关的安装包,注意软件包版本和对应的YUM源名字

# yum list MariaDB* galera

6、关闭firewalld防火墙

# systemctl disable firewalld --now

7、设置主机名(设置三台虚拟机主机名分别为db1,db2,db3)

# hostnamectl set-hostname db1
# hostnamectl set-hostname db2
# hostnamectl set-hostname db3

8、编辑/etc/hosts文件

# vim /etc/hosts
172.16.10.101    db1
172.16.10.102    db2
172.16.10.103    db3

9、关闭SELINUX

# setenforce 0
# sed -i 's,^SELINUX=enforcing,SELINUX=disabled,g' /etc/selinux/config

二、部署MariaDB Galera集群

1、安装相关软件包

# yum install MariaDB-server MariaDB-client MariaDB-client

2、由于要启用xtrabackup-v2功能,需要额外安装percona提供的软件包

# yum install https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.10/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm

3、在db1上启动MariaDB数据库,设置galera集群同步账号,进行安全初始化

# systemctl start mariadb.service
# mysql -uroot -e "grant all privileges on *.* to 'sst'@'localhost' identified by 'password';"
# mysql_secure_installation
# systemctl stop mariadb.service

4、在三个节点上编辑MariaDB配置文件,以开启galera集群功能

#vim /etc/my.cnf.d/galera.cnf
[server]
[mysqld]
# 监听哪个地址,这里每个节点填对应的ip地址
bind-address=172.16.10.101 
# 监听哪个端口
port = 3306
# 设置默认字符编码集
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
character-set-server = utf8
# 设置日志路径
log-error = /var/log/mariadb/mariadb.log
# 设置binlog
log-bin = mysql-bin
binlog_format=ROW
# 设置默认数据目录
datadir = /var/lib/mysql/
# 设置默认存储引擎
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
# galera集群名字
wsrep_cluster_name="galera_cluster"
# 本节点的主机名,这里每个节点填对应的ip地址
wsrep_node_name="db1" 
wsrep_cluster_address = "gcomm://172.16.10.101:4567,172.16.10.102:4567,172.16.10.103:4567"
wsrep_provider_options = "gmcast.listen_addr=tcp://172.16.10.101:4567;ist.recv_addr=172.16.10.101:4568" wsrep_node_address="172.16.10.101:4567"
# 设置galera集群同步的方法和用户名密码
wsrep_sst_auth=sst:password
wsrep_sst_method=xtrabackup-v2
max_connections = 10000
key_buffer_size = 64M
max_heap_table_size = 64M
tmp_table_size = 64M
innodb_buffer_pool_size = 128M
[embedded]
[mariadb]
[mariadb-10.1]

三、启动galera集群

1、在db1上运行galera_new_cluster命令

# galera_new_cluster

2、在db1上查看集群状态

# mysql -uroot -p -e "show status like 'wsrep_cluster_size';"
+--------------------------+--------------------------------------+
| Variable_name            | Value                                |
+--------------------------+--------------------------------------+
| wsrep_cluster_size       | 1                                    |
+--------------------------+--------------------------------------+

3、监控db1上的MariaDB日志

# tail -f /var/log/mariadb/mariadb.log

4、在db2上运行MariaDB数据库

# systemctl start mariadb

5、在db1上检查集群状态

# mysql -uroot -p -e "show status like 'wsrep_cluster_size';"
+--------------------------+--------------------------------------+
| Variable_name            | Value                                |
+--------------------------+--------------------------------------+
| wsrep_cluster_size       | 2                                    |
+--------------------------+--------------------------------------+

6、在db3上运行MariaDB数据库

# systemctl start mariadb

7、在db1上检查集群状态

# mysql -uroot -p -e "show status like 'wsrep_cluster_size';"
+--------------------------+--------------------------------------+
| Variable_name            | Value                                |
+--------------------------+--------------------------------------+
| wsrep_cluster_size       | 3                                    |
+--------------------------+--------------------------------------+

四、验证MariaDB galera集群的同步功能是否正常

1、在db1上创建用户、数据库

# mysql -uroot -p -e "user add testuser;"
# mysql -uroot -p -e "create database testdb;"
# mysql -uroot -p -e "grant all privileges on testdb.* to 'testuser'@'localhost' identified by 'password';"

2、在db2上检查用户、数据库是否存在

# mysql -uroot -p -e "select user,host from mysql.user;"
# mysql -uroot -p -e "show databases;"

3、在db3上删除用户和数据库

# mysql -uroot -p -e "delete user 'testuser'"
# mysql -uroot -p -e "drop database testdb"

4、在db1上检查用户和数据库是否还在

# mysql -uroot -p -e "select user,host from mysql.user;"
# mysql -uroot -p -e "show databases;"

 

 

至此,MariaDB galera集群已经部署完成

转载于:https://www.cnblogs.com/luanlengli/p/8899143.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值