MariaDB Galera Cluster集群配置

集群环境介绍:

img

注释:通常在使用MariaDB的过程中,也不难实现一种Multi-Master架构,但是一般需要上层应用来配合,比如先要约定每个表必须有自增列,并且如果是2个节点的情况,一个节点只能写偶数值,而另一个节点只能写奇数值,同时2个节点之间互相做复制,因为2个节点写入的东西不同,所以复制不会冲突,在这种约定之下,可以基本实现多Master架构,也可以保证数据的完整性与一致性。但这种方式使用起来还是有限制,同时还会出现复制延迟,且不具有扩展性,不是真正意义上的集群。

网络拓扑图:

img

注释:这里因为同时做了MariaDB和MySQL的高可用集群测试、MariaDB集群只用看左边MariaDB Galera Cluster的拓扑就可以了。

宿主机CentOS版本信息:

img

# 基础工具安装:
yum -y install [wget](http://image.z0ukun.com/tag/wget/) vim ntp net-tools tree openssh

# 关闭seLinux*和防火墙:
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd –state
sed -i ‘/^SELINUX=.*/c SELINUX=disabled’ /etc/selinux/config
sed -i ‘s/^SELINUXTYPE=.*/SELINUXTYPE=disabled/g’ /etc/selinux/config
grep –color=auto ‘^SELINUX’ /etc/selinux/config
setenforce 0

img

配置网卡信息(修改网卡信息之前一定要先执行以下yum update让系统同步yum源、要不然你懂得)

img

配置hostname:

img

修改时区:

# 列出所有时区
timedatectl list-timezones
# 将硬件时钟调整为与本地时钟一致, 0 为设置为 UTC 时间
timedatectl set-local-rtc 1
# 设置系统时区为上海
timedatectl set-timezone Asia/Shanghai
# 系统底层修改时区
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime      

升级、重启:

yum update -y && reboot

三台主机加入/etc/hosts使节点之间可以互相解析:

img

设置MariaDB的Yum源并安装(所有节点):

img

执行安装命令:

yum install MariaDB-server MariaDB-client galera -y

安装完成之后初始化MariaDB:

systemctl start mariadb
mysql_secure_installation # (按提示设置mysql密码)
systemctl stop mariadb

授权root用户可以远程访问数据库:

GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’IDENTIFIED BY ‘980430’ WITH GRANT OPTION;

root是登陆数据库的用户,980430是登陆数据库的密码,*就是意味着任何来源任何主机。

配置好权限之后,刷新使之生效:

配置命令:

flush privileges;

再次远程访问数据库就可以了。

配置Galera:

MariaDBA节点配置文件 /etc/my.cnf.d/server.cnf

img

注释:将此文件复制到MariaDBB、MariaDBC,注意要把 wsrep_node_name 和 wsrep_node_address 改成相应节点的 hostname 和 ip。

引导集群创建(启动之前一定要保证所有节点的MariaDB处于stop状态)

/usr/sbin/mysqld –wsrep-new-cluster –user=root &

查看集群状态:

img

img

启动其他节点的MariaDB(服务正常节点会自动添加进集群):

 systemctl start mariadb

img

升级、重启:

img

推荐文章