部署MariaDB10.4集群

A.配置主机名并准备基本系统

修改HOSTS文件
nano /etc/hosts

形如
192.168.1.132   mariadb1
192.168.1.133   mariadb2
192.168.1.134   mariadb3

保存并退出

接下来关闭SELinux
sed -i -e 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
注:/etc/sysconfig/selinux是/etc/selinux/config的软连接,务必修改原文件,否则重启服务器后mariadb起不来

记得先关闭
setenforce 0
sed -i -e 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

B.安装MariaDB Galera服务器

创建新的yum源

nano /etc/yum.repos.d/mariadb.repo

内容如下:
# MariaDB 10.4 CentOS repository list - created 2019-10-10 03:55 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/10.4/centos7-amd64/
gpgkey =  https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1

现在安装MariaDB Galera Server和Client,以及所需的其他一些软件包:

yum -y install MariaDB-server MariaDB-client galera-4 rsync xinetd wget

 

C.配置Firewalld

将使用到以下端口
3306 =用于MySQL / MariaDB客户端连接。
4444 = wsrep_sst_receive_address
4567 = Galera群集复制流量。
873 = Rsync端口。

firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --permanent --add-port=4444/tcp
firewall-cmd --permanent --add-port=4567/tcp
firewall-cmd --permanent --add-port=4568/tcp
firewall-cmd --permanent --add-port=873/tcp
firewall-cmd --reload

D.配置MariaDB Galera群集

在每个节点下修改配置文件

nano /etc/my.cnf.d/server.cnf

内容参考:

[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.56.122,192.168.56.123,192.168.56.124" #整个集群的IP地址
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
#
# Allow server to accept connections on all interfaces.
#
#bind-address=0.0.0.0
#
# Optional setting
#wsrep_slave_threads=1
#innodb_flush_log_at_trx_commit=0
wsrep_provider_options="gcache.size=1G"
wsrep_cluster_name=MariaDB-Galera-Cluster #集群名称
wsrep_node_name=centos122 #hostname,对应前面网路配置/etc/hosts
wsrep_node_address=192.168.56.122 #机器IP地址
wsrep_sst_method=rsync #同步方式

其除wsrep_node_name、wsrep_node_address每个节点不同,其它配置相同。保存并退出

启动集群:

去第一个节点启动集群(底层调用的是mysqld --wsrep-new-cluster命令):

galera_new_cluster

然后去其它节点启动mariadb(底层调用的是/bin/systemctl start mariadb.service命令,会自动加入集群中):
systemctl start mariadb
不要忘记设置自动启动
systemctl enable mariadb

注意:每次在第一台集群上,需要使用下面的命令来启动,
galera_new_cluster

 

E.常用集群命令

查看集群状态:
show status like 'wsrep_cluster%';
show status like 'wsrep%';

F.常用集群命令

当然了,写了个脚本

wget http://***.com/MariaDB/installMariaDB.sh -O installMariaDB.sh
chmod +x installMariaDB.sh
./installMariaDB.sh

G.配置Clustercheck

Clustercheck是一个有用的bash脚本,用于创建能够监视MariaDB服务器的代理(例如:HAProxy)。

转到/ tmp目录并使用wget下载脚本:

cd /tmp
wget https://raw.githubusercontent.com/olafz/percona-clustercheck/master/clustercheck

现在通过更改权限并将其移动到/ usr / bin /目录来使脚本可执行:

chmod +x clustercheck
mv clustercheck /usr/bin/

接下来,使用“/etc/xinet.d/”目录中的vi命令为clusterchek创建一个xinetd脚本:

nano /etc/xinetd.d/mysqlchk

粘贴以下配置:

# default: on
# description: mysqlchk
service mysqlchk
{
        disable = no
        flags = REUSE
        socket_type = stream
        port = 9200             # This port used by xinetd for clustercheck
        wait = no
        user = nobody
        server = /usr/bin/clustercheck
        log_on_failure += USERID
        only_from = 0.0.0.0/0
        per_source = UNLIMITED
}

保存并退出。

将clustercheck添加到服务列表中:

vi /etc/services

转到第10101行,注释使用端口9200的服务,并为mysqlchk / clustercheck添加一行。

mysqlchk        9200/tcp                # mysqlchk

#wap-wsp         9200/tcp                # WAP connectionless session service
#wap-wsp         9200/udp                # WAP connectionless session service

保存文件并退出。

然后启动xinetd服务:

systemctl start xinetd

要执行clustercheck,您必须在MySQL中创建一个新用户。 登录到MariaDB shell并创建名为“clustercheckuser”和密码“clustercheckpassword!”的新用户。

mysql -u root -p
GRANT PROCESS ON *.* TO 'clustercheckuser'@'localhost' IDENTIFIED BY 'clustercheckpassword!' ;
flush privileges;
exit;

测试集群检查:

/usr/bin/clustercheck

确保结果代码是200。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值