Galera Cluster5.6 for mysql (CnetOs7) 集群搭建

本文非原创,在踩了无数坑后整理的可以正常搭建集群的方法。
本人在实验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是成功安装了的,不知道你们有没有遇见这种情况。
Galera Cluster5.7 for mysql (CnetOs7) https://blog.csdn.net/l42606525/article/details/84881234

安装环境:

   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.142:4567
    #指定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节点地址,以此类推.

集群重启:

   &emsp在集群停止之后重启时,先在每个几点上使用mysqld_safe --wsrep-recover查看节点的Recovered position的值,选择值最大的一个作为第一个几点启动,如果启动失败,则在将作为第一个启动节点的服务器上编辑grastate.dat文件(可以使用find命令查找位置),将safe_to_bootstrap的值设为1,使用service mysql start --wsrep-new-cluster命令启动该节点,其他节点启动与以前一致。

集群测试:

  1)在节点139上创建database:create database clustertest;
  在节点141和节点142上查看创建状态
          Galera Cluster5.6 for mysql (CnetOs7) 集群搭建_第1张图片
  2)在节点139的数据库clustertest上创建表:create table myCluster;
    在节点141和节点142上查看创建状态
    Galera Cluster5.6 for mysql (CnetOs7) 集群搭建_第2张图片
  3)在节点139的表中插入数据:
    INSERT INTO myCluster VALUES(‘1’,‘1.0’,‘node139’,‘node139’);
    在节点141和节点142上查看
    Galera Cluster5.6 for mysql (CnetOs7) 集群搭建_第3张图片
  4)使用java代码插入10W条数据
    Galera Cluster5.6 for mysql (CnetOs7) 集群搭建_第4张图片
    在插入过程中停掉一个节点,一段时间后再启动,数据自动同步,无丢失数据。
    整个插入过程数据实时同步,无延迟。
    Galera Cluster5.6 for mysql (CnetOs7) 集群搭建_第5张图片

你可能感兴趣的:(mysql,GaleraCluster,java,mysqlCluster)