本人在阿里云ECS云主机上配置,cpu核数2 内存2G 带宽1M,3台阿里云主机所在的安全组要开放全部协议的所有端口(针对mariadb-galera-cluster集群中同步用到的端口来开放比较麻烦,涉及端口TCP 3306 4567 4568,4444,由于一些端口用的是tcp协议,一些端口用的UDP协议,所以建议这后面三个端口把tcp,udp都开放,如果你嫌麻烦,就索性开放所有协议所有端口)。
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
systemctl stop firewalld.service
systemctl disable firewalld.service
yum clean all
2.对三台云主机的/etc/hosts文件进行修改
cat >>/etc/hosts <
ping -c 3 node2
ping -c 3 node3
cat >/etc/yum.repos.d/mariadb.repo <
yum clean all
yum makecache
yum install -y MariaDB-server MariaDB-client galera
rpm -qa | grep MariaDB*
4.mariadb初始化三台节点(通过mysql-secure_installation命令配置密码)
systemctl start mariadb
mysql_secure_installation(设置root密码为liujia)
mysql -uroot -pliujia
grant all privileges on *.* to root@"%" identified by "liujia";
grant all privileges on *.* to sst_user@"%" identified by "liujia";
flush privileges;
exit
systemctl stop mariadb (三台节点都stop)
cat >>/etc/my.cnf.d/service.cnf <
node2节点配置galera添加如下配置
cat >>/etc/my.cnf.d/service.cnf <
node3节点配置galera添加如下配置
cat >>/etc/my.cnf.d/service.cnf <
在node1节点上执行:galera_new_cluster
在node2、node3上依次执行:service mysql start
初次启动要等大概15分钟,(我理解的是因为要做SST全量备份)
(20分钟后查看3306端口和4567端口是否起来)
netstat -lntp
7.验证集群状态
进入node1
mysql -uroot -pcntsp
show status like 'wsrep_ready';
show status like 'wsrep_cluster_size';
show status like 'wsrep%';
在node1上创建数据库,看看node2 node3是否同步(已经验证过了)
create database test1;
8.异常处理死锁之后重建集群
killall mysqld (强制停止mysql) node1,node2,node3
rm -rf galera.cache node1,node2,node3 分别单独删除重启,
rm -rf grastate.dat
service mysql start --wsrep-new-cluster 或者galera_new_cluster #node1上执行
service mysql start #node2上执行
service mysql start #node3上执行
第一节点:
service mysql start --wsrep-new-cluster
其它节点:
service mysql start
show status like 'wsrep_%';
show status like "wsrep_cluster_size";
show processlist ;
停止服务删除galera.cache grastate.dat service mysql start --wsrep-new-cluster 带初始化参数是重建了新集群,其他几台也要删除那两个文件重启数据库,service mysql start 不带参数,还是用的之前的集群uuid不会变,