zoukankan      html  css  js  c++  java
  • CentOS 7 安装 Percona XtraDB Cluster 5.7

    CentOS 7安装Percona XtraDB Cluster(PXC) 5.7;记录一下安装过程。.

    主要安装过程Percona的官方文档Percona XtraDB Cluster 5.7

    Documentation已经有描述,本次记录一下步 骤。

    本文使用MySQL 5.7版本进行集群为例,暂时不使用MySQL 8。

    环境说明

    CentOS 7 ( Minimal Install)

    $ cat /etc/centos-release

    CentOS Linux release 7.6.1810 (Core)

    配置如下

    Node

    Host

    Ip addr

    descprition

    Node1

    Pxc1

    192.168.253.***

    集群节点1

    Node2

    Pxc2

    192.168.253.***

    集群节点2

    Node3

    Pxc3

    192.168.253.***

    集群节点3

     

    说明

    1. Percona XtrDB Cluster属于Multi-master Replication(多主复制)

    2.多主复制意味着支持对任意节点的读写,数据会同步复制到其他节点。

    3.建议不要同时对两个节点上相同的表写入(即写入最好分表或分库)。

    4.对写入的分表或分库,顾名思义,程序连接- -个数据库实例进行写入,而不

    是连接多个数据库实例。

     

    安装

    先决条件

    先确认每个集群节点的机器名,本文以pxc1 为例,其他pxc2, pxc3 相同

    $ hostname

    pxc1

    打开防火墙端口

    $ sudo firewall-cmd --permanent -- add-port={3306/tcp, 4444/tcp, 4567/tcp, 4568/tcp}

    success

    $ sudo firewall-cmd --reload !

    success

    重载之后,查看- - 下防火墙状态

    $ sudo firewall-cmd --list-all

    public (active)

    target: default

    icmp-block- inversion: no

    interfaces: enp0s3

    sources:

    services: dhcpv6-client ssh

    ports: 3306/tcp 4444/tcp 4567/tcp 4568/tcp

    protocols:

    masquerade: no

    forward-ports:

    source-ports:

    icmp-blocks:

    rich rules:

    将每个集群节点的SELinux设置为permissive 模式

    $ sudo vi /etc/selinux/config

    SELINUX=permissive

    :wq

    退出后,重启系统。

    $ sudo shutdown -r now

    重启完操作系统后,确认SELinux设置

    percona从库安装

    配置yum源如下,本文以pxc1为例,其他pxc2pxc3相同

    $ sudo yum install https://repo. percona. com/ yum/ percona-release-latest . noarch. Rpm (源有可能会出现错误,换成清华源下载速度就会很快了)

    注意本文使用时, yum安装的版本为percona-release-1. 0-11.noarch ,默认启用了Percona original repository ,为MySQL

    5.7的版本。

    下载来的repo文件改成清华源的url就可以下载的快一些

    然后在吧gpgcheck改成0即可

    然后yum clean all

    Yum makecache

    安装Percona XtraDB Cluster的包

    $sudo yum install Percona-XtraDB-Cluster-57

     

    安装过程中会出现如下提示,可以根据需要进行配置。

    修改密码

    3个节点都安装完软件包之后,接下来只对第一-个节点pxc1 进行修改密码操作。

    先启动Percona XtraDB Cluster服务。

    [admin@pxc1 ~] $ sudo systemctl start mysqld

    拷贝MySQL安装时自动生成的root的临时密码

    [ admin@pxc1 ~] $ sudo grep ' temporary password' /var/1og/mysqld.1og

    使用临时密码登录MySQL

    [admin@pxc1 ~] $ mysql -u root -P

    更改root用户的密码,之后退出。

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Password';

    Query OK,0 rows affected (0.00 sec)

    mysql> exit

    Bye

    关闭MySQL服务。

    [admin@pxc1 ~] $ sudo systemctl stop mysqld

    注意

    1.以上修改密码操作只在第-个节点进行即可。

    2.配置好第二个和第三个节点,启动服务操作后会复制到其他节点中。

    配置节点的Write- set Replication

    配置my.cnf

    配置第- -个节点pxc1 的/etc/my.cnf

    [admin@pxc1 ~] sudo vi /etc/my.cnf

    添加如下内容

    # Add below configuration to override the default wsrep. conf

    [mysqld]

    wsrep_ provider=/usr/lib64/galera3/libgalera_ smm.so

    wsrep_ cluster_ name=pxc-cluster

    wsrep_ cluster_ address=gcomm://192.168.253.100,192.168.253.101,192.168.253.102  #必填三台一样

    wsrep_ node_ name=pxc1

    wsrep_ node_ address=10.11.0. 81 

    wsrep_ sst_ method=xtrabackup-v2

    wsrep_ sst_ auth=sstuser :Passw0rd

    pxc_ strict_ mode=ENFORCING

    binlog_ format=ROW

    default_ storage_ engine=InnoDB

    innodb_ autoinc_ lock_ mode=2

    这些内容也同样对pxc2, pxc3进行配置,只有两个参数wsrep_ node_ name ,wsrep_ node_ address配置的值需要修改一下 对于

    对于pxc2 内容为

    wsrep_ node_ name=pxc2

    wsrep_ node_ address-10.11.0.82

    wsrep_ cluster_ address=gcomm://192.168.253.100,192.168.253.101,192.168.253.102

    对于pxc3 内容为

    wsrep_ node_ name=pxc3

    wsrep_ node_ address=10.11.0. 83

    wsrep_ cluster_ address=gcomm://192.168.253.100,192.168.253.101,192.168.253.102

     

    配置参数说明

    wsrep_ provider

    指定Galera库的路径。

    wsrep_ cluster_ name

    指定集群的逻辑名称,集群内的所有节点,这个名称必须一致。

    wsrep_ cluster_ address

    指定集群内节点的IP地址,建议将集群节点都配上。

    wsrep_ node_ name

    指定单个节点的逻辑名称,如果没有指定,将使用hostname作为逻辑名称。

    wsrep_ node_ address

    指定此特定节点的IP地址。.

    wsrep_ sst_ method

    默认的使用Percona Xtrabackup进行State Snapshot Transfer (SST),强烈建议使用wsrep. sst. _me thod=xtrabackup-v2

    wsrep_ sst_ auth

    指定sst 的身份验证凭据,使用<sst_ user>:<sst_ pass> 这种格式,启动第一个节点时必须创建,并且提供相应的权限。

    pxc_ strict_ mode

    关闭实验性的或者不支持的特性

    binlog_ format

    Galera只支持row-level replication,所以设置为binlog_ format=ROW 。

    default_ storage_ engine

    Galera只支持InnoDB引擎,所以设置为default_ storage. engine=InoDB

    innodb_ autoinc_ lock_ mode

    Galera只支持lock mode为2的InnoDB引擎,所以设置为innodb_ _autoinc_ lock_ mode=2 。

    启动第一个节点

    在第一个节点pxc1 使用如下命令启动

    [admin@pxc1 ~]$ sudo systemctl start mysq1@bootstrap

    使用bootstrap模式启动,默认会设置

    wsrep_ _cluster_ address=gcomm:// ,后面没有IP, 表示初始化集群。

    为确保初始化完成,可以使用如下命令查看

    登录MySQL

    [admin@pxc1 ~]$ mysql -u root -P

    Enter password:

    Type 'help;' or 'h’ for help. Type 'C' to clear the current input statement.

    mys1q>

    mysql> show status like ' wsrep%' ;

    可以看到集群数量时1 ,本节点为Synced 状态,表示连接成功,并且准备好进行write-set replication。

    在添加其他节点之前,我们要添加SST 用户并分配相应的权限。

    mysql> CREATE USER 'sstuser'@' localhost' IDENTIFIED BY 'Password';

    Query OK,日rows affected (0.12 sec)

    mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO ' sstuser' @'localhost';

    Query OK,日rows affected (0.09 sec)

    mysql> FLUSH PRIVILEGES;

    Query OK,0 rows affected (0.10 sec)

    注意用户名和密码必须跟配置文件匹配。

    添加其他节点

    注意

    1.所有其他节点的数据和配置都会被第-个节点的数据覆盖

    2.不用同时加入多个节点,避免数据或网络开销过大

    添加其他节点

    注意

    1.所有其他节点的数据和配置都会被第一个节点的数据覆盖

    2.不用同时加入多个节点,避免数据或网络开销过大

    启动第二个节点

    [admin@pxc2 ~]$ sudo systemctl start mysqld

    启动完成后,pxc2 会接到pxc1 的数据,可以使用如下命令查看状态

    [admin@pxc2 ~]$ mysql -u root -p

    登录到MySQL后,输入如下命令

    mysql> show status like " wsrep%" ;

    可以看到nsrte cluter se的值是2表示集群已经有2个节点了。werpe 00 steceee的值是Smed表示已经同步.

    了。

    注意如果were Joco stete coment的状态是3oiner ,表示正在同步,请不更启动第三个节点的服务。

    启动第三个节点

    注意确认好第二个节点的状态为Synced 后,再启动第三个节点。

    步骤与启动第二个节,点相同

    [admin@pxc3 ~]$ sudo systemctl start mysqld

    启动完成后,pxc3 会接到集群,可以使用如下命令查看状态

    [admin@pxc3 ~]$ mysq1 -u root -P

    登录到MySQL后,输入如下命令

    mysql> show status like' wsrep%';

    可以看到集群数量是3 ,连接没有问题,准备write-set replication

    验证复制效果

    当所有的节点都加入到集群之后,可以验证一-下复制效果。

    1.到第二个节点pxc2. 上创建一 个新的数据库

    mysq1@pxc2> CREATE DATABASE percona;

    Query OK,1 row affected (0.18 sec)

    1.到第三个节点pxc3 上, 再这个数据库上新建一个表

    mysq1@pxc3> USE percona;

    Database changed

    mysq1@pxc3> CREATE TABLE example (node_ _id INT PRIMARY KEY, node_ name VARCHAR(30));

    Query OK,0 rows affected (0.05 sec)

    1.到第-一个节点pxc1 上,插入数据.

    mysq1@pxc1> INSERT INTO percona. example VALUES (1,。 percona1');

    Query OK,1 row affected (0.02 sec)

    1.再到第二个节点pxc2. 上查询一下插入的数据

    mysq1@pxc2> SELECT * FROM percona. example;

    可以看到,多主复制很好,3 个节点都是主节点,相互复制的效果也很好。

    欢迎进群讨论:QQ群294668383(有意向可以添加)

  • 相关阅读:
    tech 浅谈 Yield
    Python strip lstrip rstrip使用方法
    Python strip lstrip rstrip使用方
    Python 的学习脚印(1)
    python中列表的赋值
    python的re模块的sub方法
    Python的异常处理机制
    [python] shutil模块
    【ActiveMq】启动amq时遇到java.net.URISyntaxException: Illegal character in hostname at index处理方法
    【sql总结】
  • 原文地址:https://www.cnblogs.com/zhang-xiao-shuang/p/13173599.html
Copyright © 2011-2022 走看看