Galera Cluster6.5 集群搭建

Posted lfh9527

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Galera Cluster6.5 集群搭建相关的知识,希望对你有一定的参考价值。

本文非原创,在踩了无数坑后整理的可以正常搭建集群的方法。
本人在实验Galera Cluster6.7时,mysql-wsrep-test-5.7-5.7.23-25.15.el7.x86_64.rpm无法成功安装,提示需要mysql-wsrep-server-5.7-5.7.23-25.15.el7.x86_64.rpm的依赖,实际上mysql-wsrep-server是成功安装了的,不知道你们有没有遇见这种情况。

 

安装环境

  centOs7

  Galera Cluster5.6(MySql5.6)

下载galeracluster

  下载地址http://galeracluster.com/downloads/

使用 (yum install -y 包名)命令进行安装

  安装顺序:

    1.   mysql-wsrep-client-5.6-5.6.41-25.23.el7.x86_64.rpm
    2.   mysql-wsrep-devel-5.6-5.6.41-25.23.el7.x86_64.rpm
    3.   mysql-wsrep-server-5.6-5.6.41-25.23.el7.x86_64.rpm
    4.   mysql-wsrep-shared-5.6-5.6.41-25.23.el7.x86_64.rpm
    5.   mysql-wsrep-5.6-5.6.41-25.23.el7.x86_64.rpm
    6.   mysql-wsrep-test-5.6-5.6.41-25.23.el7.x86_64.rpm
    7.   galera-3-25.3.24-2.el7.x86_64.rpm

安装完成后mysql 首次启动

  1) 使用命令:service mysql start --skip-grant-tables  开启mysql服务也就是使用safe模式启动,登录的时候不用输入密码

  2) 使用命令: mysql  登录

  3) 修改root用户密码

     mysql> use mysql;

     mysql> update user set password="密码"  where USER="root"

     mysql> quit

  4) 重新设置密码并开放远程登录授权

    使用命令: service mysql  restart

      重启mysql服务,使用创建的用户名和密码登录.

      再次进入的时候修改密码: SET PASSWORD=PASSWORD("密码")

     给对应需要访问MySQL的用户名和密码进行授权,如果没有授权,是无法远程连接MySQL

      授权无端口限制的用户登录mysql数据库(生产上开放端口)

      GRANT ALL PRIVILEGES ON *.* TO ‘用户名‘@‘%‘ IDENTIFIED BY ‘密码‘ WITH GRANT OPTION;

  5) 去掉Postfix,这个可能跟MySQL配置有冲突:

    yum remove postfix -y

  6) 关闭防火墙(生产开放端口)

    setenforce 0 && systemctl stop firewalld

 

修改配置文件:

  1) 拷贝wsrep.cnf 文件(/usr/share/doc/mysql-wsrep-server)  /etc/my.cnf.d/

    cp /usr/share/doc/mysql-wsrep-server-5.6-5.6.41/wsrep.cnf /etc/my.cnf.d/

  2) 修改my.cnf

    vim /etc/my.cnf注释掉其他的,增加:!includedir /etc/my.cnf.d/

  3) 修改wsrep.cnf

    vi  /etc/my.cnf.d/wsrep.cnf

#MySQL服务器的ID,必须是唯一的

server-id=101

#galera集群的名字,必须是统一的

wsrep_cluster_name=my_galera_cluster

#wsrep提供者,必须配置

wsrep-provider=/usr/lib64/galera-3/libgalera_smm.so  (.so文件的路径在哪,就配置成哪)

#wsrep节点的ID,必须是唯一的

wsrep_node_name = node1

#集群中的节点地址,可以使用主机名或IP

wsrep_cluster_address=gcomm:// 192.168.79.139:4567, 192.168.79.141:4567, 192.168.79.1424567

#指定wsrep启动端口号

wsrep_provider_options=‘gmcast.listen_addr=tcp://192.168.79.139:4567‘

#本机节点地址,可以使用主机名或IP

wsrep_node_address=‘192.168.79.139‘

wsrep_node_incoming_address=‘192.168.79.139‘

#一个逗号分割的节点串作为状态转移源,比如wsrep_sst_donor=node5,node3,如果node5可用,用node5,不可用node3,如果node3不可用,最后的逗号表明让提供商自己选择一个最优的。

wsrep_sst_donor=‘node1,node2,node3,‘

#线程数量。参考设置:1.CPU内核数*2以上;2.其它写节点连接总数的1/4.

wsrep_slave_threads=16

#操作数据库用户名密码(最好能和mysql数据库的用户名密码一致)

wsrep_sst_auth=root:123456

其余配置暂不用修改,有需要配置的,最好了解清楚以后修改

启动集群:

  1) 集群第一个节点启动

    service mysql start --wsrep-new-cluster

    查看集群状态:show status like ‘wsrep%‘;

    可以查看一下4567端口是否开放其他节点接入的时候需

  2) 其他节点启动
    service mysql start --wsrep-cluster-address=‘gcomm://192.168.79.139:4567‘;

    注意gcomm://的地址是前一个启动成功的节点地址。

    配置方式遵循,1节点指向0节点地址,2节点指向1节点地址,以此类推.

 

集群测试:

  1) 节点139创建databasecreate database clustertest

    在节点141和节点142查看创建状态

        技术分享图片

 

 

  2) 节点139数据库clustertest创建create table myCluster;

    在节点141和节点142查看创建状态

    技术分享图片

  3) 节点139的表中插入数据:

    INSERT INTO myCluster VALUES(‘1‘,‘1.0‘,‘node139‘,‘node139‘);

    在节点141和节点142查看

      技术分享图片

 

  4) 使用java代码插入10W条数据

    技术分享图片

    在插入过程中停掉节点,一段时间后再启动,数据自动同步无丢失数据。

    整个插入过程数据实时同步,无延迟。

    技术分享图片

 



以上是关于Galera Cluster6.5 集群搭建的主要内容,如果未能解决你的问题,请参考以下文章

Linux 搭建 MariaDB Galera Cluster 高可用集群

Galera Cluster5.7 (CentOs7) 集群搭建

超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数

Linux下MySQL/MariaDB Galera集群搭建过程

实战Mariadb galera Cluster集群架构

mariadb galera启动问题