A.配置主机名并准备基本系统
修改HOSTS文件
nano /etc/hosts
形如
192.168.1.132 mariadb1
192.168.1.133 mariadb2
192.168.1.134 mariadb3
保存并退出
接下来关闭SELinuxsed -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。