美文网首页Java 核心技术MySQL数据库知识点
PXC 3节点集群基于二进制的搭建

PXC 3节点集群基于二进制的搭建

作者: 平常xin | 来源:发表于2018-01-07 23:13 被阅读141次

    转载请务必保留超链接:原文链接

    简介:

    Percona XtraDB集群是MySQL的数据库集群解决方案。它确保高可用性,防止停机和数据丢失,并为不断增长的环境提供线性可扩展性。

    Percona XtraDB Cluster(PXC)是基于Galera 协议的高可用方案, Galera是Codership提供的多主数据同步复制机制,可以实现多个节点间的数据同步复制以及读写,并且可保障数据库的服务高可用及数据一致性。

    PXC的原理

    PXC会使用大概是4个端口号:

    3306 数据库对外服务的端口号

    4444 SST全量传输,用于新增节点(类似xtrbackup物理备份后再恢复的过)

    4567 组成员之间进行沟通的一个端口号

    4568 传输IST用的;相对于SST来说的一个增量。

    PXC集群提供的特如下:

    1. 同步复制

    2.多主复制

    3.真正的并行复制

    4.数据一致性

    5.支持 ProxySQL

    本次实验环境介绍:

    1、查看系统防火墙是否已经关闭

    systemctl status firewalld.service 

    Active: inactive (dead)          //当前防火墙已经关闭

    2、查看 selinux 是否已经关闭

    cat /etc/selinux/config

    SELINUX=disabled    //当前selinux已经关闭

    3、安装软件依赖包

    yum install –y perl-DBD-MySQL.x86_64 perl-IO-Socket-SSL.noarch socat.x86_64 nc

    yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

    4、到官网 https://www.percona.com/downloads/XtraBackup/LATEST/ 下载Redhat7版本中percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm 到 /opt/mysql/ 目录下, PXC-5.7.19 需要  xtrabackup-2.4.4 or higher

    rpm -ivh percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm

    xtrabackup --version        //查看xtrabakup是否安装

    5、下载 PXC二进制安装包 到 /opt/mysql/ 目录下

    wget https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/Percona-XtraDB-Cluster-5.7.19-29.22-3/binary/tarball/Percona-XtraDB-Cluster-5.7.19-rel17-29.22.3.Linux.x86_64.ssl101.tar.gz

    tar zxvf Percona-XtraDB-Cluster-5.7.19-rel17-29.22.3.Linux.x86_64.ssl101.tar.gz    //解压

    mv Percona-XtraDB-Cluster-5.7.19-rel17-29.22.3.Linux.x86_64.ssl101 pxc-5.7.19  //重命名

    6、在 /usr/local/ 目录下创建MySQL的软链并且给用户授权

    ln -s /opt/mysql/pxc-5.7.19 mysql

    chown -R mysql:mysql mysql

    7、安装MySQL

    创建用户和用户组

    groupadd mysql

    useradd -g mysql -d /usr/local/mysql -s /sbin/nologin -M mysql

    cd /usr/local

    chown -R mysql:mysql mysql

    创建MySQL的基本目录

    mkdir /data/mysql/mysql3306/{data,logs,tmp} -p

    chown -R mysql:mysql /data/*

    MySQL配置文件 my.cnf 添加 PXC 参数

    default_storage_engine=Innodb

    innodb_locks_unsafe_for_binlog=1

    innodb_autoinc_lock_mode=2

    wsrep_cluster_name=pxc_bin  #集群名称

    wsrep_cluster_address=gcomm://192.168.1.28,192.168.1.29,192.168.1.30  # 集群节点的所有ip

    wsrep_node_address=192.168.1.28    #当前节点的ip

    wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so

    wsrep_sst_method=xtrabackup-v2  #采用什么方式复制数据, 支持xtrabackup , rsync, mysqldump

    wsrep_sst_auth=binbin:123456abc  #sst模式需要的用户名和密码

    初始化

    cd /usr/local/mysql

    ./bin/mysqld --defaults-file=/etc/my.cnf --initialize

    添加MySQL环境变量

    echo $PATH

    echo "export PATH=$PATH:/usr/local/mysql/bin">>/etc/profile

    source /ect/profile

    启动

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

    /etc/init.d/mysql start  启动报错,找不到 my_print_defaults, 如下图:

    解决办法: vim /etc/init.d/mysql

    把 basedir定义为: basedir=/usr/local/mysql/

    把datadir定义为:datadir=/data/mysql/mysql3306/data/

    获取密码:

    grep  -i password /data/mysql/mysql3306/data/error.log

    登录: mysql -S /tmp/mysql3306.sock -p

    修改密码: alter user user() identified by '123456abc';

    #创建全量写集传输用户

    mysql@pxc1> CREATE USER 'binbin'@'localhost' IDENTIFIED BY '123456abc';

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

    mysql@pxc1>  flush privileges;

    PXC第一个节点的启动:

    /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --wsrep-new-cluster &

    centos7 下不能使用 /etc/init.d/mysql bootstrap-pxc 启动,如下:

    启动完毕的确认:

    netstat -an|grep -E "3306|4444|4567|4568"  #检查端口是否被监听

    /etc/init.d/mysql status        #查看状态

    mysql>show global status like 'wsrep%';

    |wsrep_local_state                                                | 4 |

    | wsrep_local_state_comment        | Synced |

    | wsrep_cluster_status                    | Primary  |

    | wsrep_connected                          | ON  |

    node2和node3节点的搭建这里就不描述了;

    注:node2和node3节点的 MySQL 配置文件需要修改下面的这两个参数

    server-id 的标识

    wsrep_node_address 参数为Cluster集群节点的当前机器的IP地址

    node2和node3节点的启动

    /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf &

    netstat -an|grep -E "3306|4444|4567|4568"  #检查端口是否被监听

    /etc/init.d/mysql status        #查看节点状态


    最后: 在每个节点分别写入数据看看能不能同步, 如果同步,说明PXC环境已经搭建完成。

    相关文章

      网友评论

        本文标题:PXC 3节点集群基于二进制的搭建

        本文链接:https://www.haomeiwen.com/subject/psidnxtx.html