galera-mariadb集群

AB复制可满足数量较少主机的数据同步,但是对于庞大数量的服务器,galera集群更方便配置。

galera-mariadb集群_第1张图片

首先,安装galera和mariadb

然后启动mariadb服务

#systemctl start mariadb 启动数据库
#mysql_secure_installation 初始化设置mareadb(设置密码)
#mysql -p123 进入数据库

创建授权账户,并且刷新授权表
mysql> grant all on *.* to 'syncuser'@'%' identified by '123';
mysql> flush privileges;


#cp /usr/share/mysql/wsrep.cnf /etc/my.cnf.d/ //拷贝wsrep作为集群配置文件

然后修改配置文件:
vim /etc/my.cnf.d/wsrep.cnf
修改/etc/my.cnf.d/wsrep.cnf内容

在[mysqld]下统一配置如下字段,方便排错:
server-id=1
*binlog_format=row //binlog的格式
innodb_file_per_table=1 //独立的表空间
*innodb_autoinc_lock_mode=2 //
wsrep_on=ON //wsrep功能开启
wsrep_provider=/usr/lib64/galera/libgalera_smm.so 开启so模块*
wsrep_cluster_name='galera' //集群名*

wsrep_cluster_address='gcomm://' //第一台可以什么也不写*
wsrep_node_name='galera1' *
wsrep_node_address='192.168.2.11' //本主机的IP*
wsrep_sst_auth=syncuser:'123' //创建的授权用户和密码*
*wsrep_sst_method=rsync 传输方式*

重启数据库,如果配置错误,则会起不来服务。
#systemctl restart mysqld
#ss -tnlp |egrep '3306|4567' //查看所需端口是否起来
进入mysql查询变量的状态:
mysql>show status like 'wsrep%'
如果wsrep_connected=ON且wsrep_ready=ON则说明节点成功接入集群。

为集群添加其他主机的话,只需要重复上边的操作并修改下面的参数:

比如说添加第二台服务器:
server-id=2
wsrep_cluster_address='gcomm://其他集群主机的名字'  //可以理解为集群的介绍人
wsrep_node_name='设置自己的集群节点名字'
wsrep_node_address='192.168.2.***' //填写本机IP
wsrep_sst_auth=syncuser:'123' //填写自己的授权账户与密码

配置好三台集群主机后:在任意一台写入数据,三台主机都将同步数据:

(wsrep_cluster_size 3代表三台主机都已经加入到集群中去了)

galera-mariadb集群_第2张图片




 

你可能感兴趣的:(CentOS)