如何在Centos7安装Mariadb Galera Cluster三主集群

安装前准备:
禁用SELinux
/usr/sbin/setenforce 0
sestatus
安装vim wget lrzsz
yum install vim wget lrzsz -y
yum remove libperl
rm -rf /usr/lib64/perl5/CORE/libperl.so
更新操作系统
yum upgrade -y
reboot
设置hosts
vi /etc/hosts
192.168.1.36 mariadb1
192.168.1.48 mariadb2
192.168.1.51 mariadb3
一. 删除旧的mariadb 和  galera
1、yum方式安装的MySQL
yum remove mariadb galera mysql mysql-server mysql-libs compat-mysql51
查看是否还有mysql软件:
rpm -qa|grep mysql
如果存在的话,继续删除即可,删除方式:yum remove + 【名字】。
2、rpm方式安装的mysql
rpm -qa | grep -i mysql
MySQL-server-5.6.17-1.el6.i686
MySQL-client-5.6.17-1.el6.i686
卸载mysql
rpm -e MySQL-server-5.6.17-1.el6.i686
rpm -e MySQL-client-5.6.17-1.el6.i686
查看mysql服务
systemctl list-unit-files
3删除分散mysql文件夹
用whereis mysql 或者 find / -name mysql
/etc/selinux/targeted/active/modules/100/mysql
/var/lib/mysql
/usr/lib64/mysql
/usr/share/mysql
清空相关mysql的所有目录以及文件
cd  /etc/selinux/targeted/active/modules/100/mysql ;rm -rf ./*;
cd  /var/lib/mysql;rm -rf ./*;
cd  /usr/lib64/mysql;rm -rf ./*;
cd  /usr/share/mysql;rm -rf ./*;
cd //etc/my.cnf.d/;rm -rf ./*;
rm -f /etc/my.cnf
二.添加MariaDB YUM repository
vi  /etc/yum.repos.d/MariaDB.repo
增加内容:
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3.0/centos7-amd64
gpgkey=http://yum.mariadb.org/RPM-GPG-KEY-MariaDB
enabled=1
gpgcheck=1
三.用yum安装Percona XtraBackup(2.4.8版本 )
1.安装Percona repository
2.测试repository
yum list | grep percona
3.安装percona-xtrabackup-24
yum install percona-xtrabackup-24
四.用YUM命令安装MariaDB Galera Cluster
yum install  MariaDB-server  MariaDB-client  socat  -y
yum clean all
yum makecache
五.安装后启动节点配置相关账号
sudo systemctl start mariadb
或 操作系统没有systemctl命令时用下面这句命令执行
sudo /etc/init.d/mysql start
本地登录:
mysql -uroot -p
给root用户授权远程登录:
GRANT  all privileges on *.* to ‘root’@’%’ IDENTIFIED BY ‘123456’;
flush privileges;
新增galerauser 用户,并设置密码为1qaz2wsx :
insert into mysql.user(Host,User,Password) values(“localhost”,”galerauser”,password(“123456”));
insert into mysql.user(Host,User,Password) values(“%”,”galerauser”,password(“123456”));
GRANT  all privileges on *.* to ‘galerauser’@’%’ IDENTIFIED BY ‘123456’;
GRANT  all privileges on *.* to ‘galerauser’@’localhost’ IDENTIFIED BY ‘123456’;
flush privileges;
六.配置数据库账号
所有节点都执行下面这句命令
/usr/bin/mysql_secure_installation
七.配置集群配置文件
第一个节点(配置为启动节点)
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address=’gcomm://’    #第一个启动节点配置
wsrep_cluster_name=’mariadb_cluster’
wsrep_node_address=’192.168.1.36′   #本机IP地址
wsrep_node_name=’mariadb1′    #集群节点名称
wsrep_sst_method=rsync
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
lower_case_table_names = 1
第二个节点:
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address=’gcomm://192.168.1.36,192.168.1.51′
wsrep_cluster_name=’mariadb_cluster’
wsrep_node_address=’192.168.1.48′
wsrep_node_name=’mariadb2′
wsrep_sst_method=rsync
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
lower_case_table_names = 1
第三个节点:
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address=’gcomm://192.168.1.36,192.168.1.48′
wsrep_cluster_name=’mariadb_cluster’
wsrep_node_address=’192.168.1.51′
wsrep_node_name=’mariadb_node3′
wsrep_sst_method=rsync
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
lower_case_table_names = 1
注意:如果要启动Mariadb Galera Cluster ,首先选择node1节点为初始节点,将node1作为第一个启动节点,并且设置gcomm为空,否则无法启动。
wsrep_cluster_address=’gcomm://’
八 .启动一个新的集群
根据不同版在主节点执行(第一次初始化时使用,只执行一次,以后不需要执行这一句):
/usr/sbin/mysqld –wsrep-new-cluster –user=mysql &
警告:对一个已存在的集群添加新的节点时,不要使用引导的方式(bootstrap)启动这个节点,不能在一个集群中使用两个引导节点。
其它节点执行:systemctl start mariadb
查看日志: tail -f /var/log/messages
本次启动顺序为:mariadb1–>>mariadb3–>mariadb2 关的顺序为: mariadb2–>>mariadb3–>mariadb1
重启节点命令为:systemctl restart mariadb
查看节点状态: systemctl start mariadb
第一个节点
第二个节点
第三个节点
九执行命令:
mysqld –wsrep_cluster_address=gcomm://192.168.1.36  # 也可以用DNS名称
注意:ip为第一个启动的那个主节点
十.关闭所有节点后重启集群
——–未完待续