zoukankan      html  css  js  c++  java
  • MySQL--Percona-XtraDB-Cluster 5.6安装笔记

    安装环境:

    有三台干净的CentOS 6的服务器,IP配置为:192.168.166.169,192.168.166.170,192.168.166.171,准备搭建三节点的Percona XtraDB Cluster

    ================================================

    相关安装包下载:

    https://www.percona.com/downloads/

    也可以先使用yum install 来安装percona-release-0.1-4.noarch.rpm的包:

    yum install https://www.percona.com/redir/downloads/percona-release/redhat/latest/percona-release-0.1-4.noarch.rpm

    然后使用yum download获取最新的包及依赖包:

    yum -y install --downloadonly Percona-XtraDB-Cluster-56

    ================================================

    在每个群集节点上进行以下安装

    使用yum安装依赖的包:

    yum -y install perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes nc rsync libaio numactl lsof

    使用RPM安装:

    rpm -ivh libev-4.03-3.el6.x86_64.rpm
    rpm -ivh compat-readline5-5.2-17.1.el6.x86_64.rpm
    rpm -ivh socat-1.7.2.3-1.el6.x86_64.rpm
    rpm -ivh percona-xtrabackup-2.2.12-1.el6.x86_64.rpm
    rpm -ivh percona-xtrabackup-debuginfo-2.2.12-1.el6.x86_64.rpm
    rpm -ivh percona-xtrabackup-test-2.2.12-1.el6.x86_64.rpm
    rpm -ivh Percona-XtraDB-Cluster-shared-56-5.6.35-26.20.2.el6.x86_64.rpm
    rpm -ivh Percona-XtraDB-Cluster-galera-3-3.20-2.el6.x86_64.rpm
    rpm -ivh Percona-XtraDB-Cluster-client-56-5.6.35-26.20.2.el6.x86_64.rpm
    rpm -ivh Percona-XtraDB-Cluster-devel-56-5.6.35-26.20.2.el6.x86_64.rpm
    rpm -ivh Percona-XtraDB-Cluster-server-56-5.6.35-26.20.2.el6.x86_64.rpm

    ================================================

    修改各群集节点上/etc/my.cnf增加以下信息:

    [mysqld]
    
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    
    skip-host-cache
    skip-name-resolve
    
    server_id=1
    wsrep_node_name=pxc1
    wsrep_provider=/usr/lib64/libgalera_smm.so  
    wsrep_cluster_address="gcomm://192.168.166.169,192.168.166.170,192.168.166.171"  
    wsrep_sst_auth="sstuser:s3cret" 
    wsrep_provider_options="gcache.size=4G"  
    wsrep_cluster_name=Percona  
    wsrep_sst_method=rsync  
    wsrep_slave_threads=4  
    log_slave_updates  
    innodb_locks_unsafe_for_binlog=1  
    innodb_autoinc_lock_mode=2

    各群集节点上server_id和wsrep_node_name设置为不同的值

    ================================================

    群集的第一个节点不需要进行数据同步,使用bootstrap启动,等同于将wsrep_cluster_address方式设置为gcomm://

    假设将192.168.166.169当做第一个群集节点,使用下面方式启动:

    ## 在CentOS6下,使用下面方式启动第一个节点
    /etc/init.d/mysql bootstrap-pxc
    
    ##在CentOS7下,使用下面方式启动第一个节点
    systemctl start mysql@bootstrap.service

    对于PXC 5.6版本,安装后的root默认密码为空,对于PXC 5.7版本,默认root密码写入到/var/log/mysqld.log,可以使用cat /var/log/mysqld.log |grep password来查看

    第一个节点启动后,应该修改root账号密码,并新增群集同步的账号密码,登录第一个启动节点,执行下面脚本:

    ##更新root账号密码
    UPDATE mysql.user 
    SET Password=PASSWORD('Abc@123')
    WHERE user='root';
    FLUSH PRIVILEGES;
    
    ## 创建wsrep_sst_auth使用的账号
    CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 's3cret';
    GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';
    FLUSH PRIVILEGES;

    PXC 5.7版本中mysql.user表的密码字段更新为authentication_string,需要使用ALTER语句来更改

    ================================================

    对于群集的第二或第N个节点,采用普通的方式启动:

    ## 在CentOS6下使用下面方式启动第二节点:
    /etc/init.d/mysql start
    
    ## 在CentOS7下使用下面方式启动第二节点:
    systemctl start mysql

    启动成功后,会自动从第一个节点同步数据,因此无需在第二或第N个节点上修改root账号,可以直接使用第一节点上更新后的root账号密码登录。

    ================================================

    搭建时遇到的问题:

    当wsrep_sst_method设置为mysqldump或xtrabackup时,会报如下错误:

    [ERROR] WSREP: Failed to read uuid:seqno from joiner script.
    [ERROR] WSREP: SST script aborted with error 32 (Broken pipe)
    [ERROR] WSREP: SST failed: 32 (Broken pipe)
    [ERROR] Aborting

    因此对于新创建的群集,推荐使用rsync来搭建

    相关参考连接:

    https://www.percona.com/doc/percona-xtradb-cluster/5.6/wsrep-system-index.html#wsrep_sst_method

    ================================================

    打完收工

  • 相关阅读:
    使用express框架创建服务器
    搭建第一个node服务器
    Node 与JS的区别
    node学习之路
    【每天一个linux命令】read
    【每天一个linux命令】awk
    【每天一个linux命令】wc
    【每天一个linux命令】sed
    【每天一个linux命令】tee
    【每天一个linux命令】find
  • 原文地址:https://www.cnblogs.com/TeyGao/p/6802071.html
Copyright © 2011-2022 走看看