修改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
创建新的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
将使用到以下端口3306 =用于MySQL / MariaDB客户端连接。 4444 = wsrep_sst_receive_address4567 = 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
在每个节点下修改配置文件
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
查看集群状态:show status like 'wsrep_cluster%'; show status like 'wsrep%';
当然了,写了个脚本
wget http://***.com/MariaDB/installMariaDB.sh -O installMariaDB.sh chmod +x installMariaDB.sh ./installMariaDB.sh
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。