• ADADADADAD

    Percona-XtraDB-Cluster的编译安装[ mysql数据库 ]

    mysql数据库 时间:2024-12-25 09:57:04

    作者:文/会员上传

    简介:

    环境:操作系统centos7.4,mysql 安装在/data/mysql下,mysql属于mysql用户,pxc-5.7.19一、下载源码包:1.1 下载pxc-5.7.19mkdir -p /home/sunx/tools wget -P /home/sunx/toolshtt

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    环境:
    操作系统centos7.4,mysql 安装在/data/mysql下,mysql属于mysql用户,pxc-5.7.19



    一、下载源码包:

    1.1 下载pxc-5.7.19

    mkdir -p /home/sunx/tools
    wget -P /home/sunx/tools
    https://www.percona.com/downloads/Percona-XtraDB-Cluster-57/Percona-XtraDB-Cluster-5.7.19-29.22/source/tarball/Percona-XtraDB-Cluster-5.7.19-29.22.tar.gz

    1. 2 下载boost

    mkdir -p /usr/local/boost
    wget -P /usr/local/boost https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz/download

    1.3 下载percona-xtrabackup-2.4.5

    wget -P /home/sunx/tools https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.5/source/tarball/percona-xtrabackup-2.4.5.tar.gz

    二、安装依赖:

    yum -y installlibtool ncurses-devel libgcrypt-devellibev-devel \
    git sconsgccgcc-c++opensslcheckcmakebison boost-devel\
    asio-devel libaio-develncurses-develreadline-develpam-devel socat \
    libaioautomake autoconf vim redhat-lsb check-devel

    yum -y install libnl-devel openssl-devel libnfnetlink-devel ipvsadm \
    popt-devel libnfnetlink kernel-devel popt-static iptraf

    yum -y install numactl libevperl-DBD-mysql perl-Time-HiRes

    配置epel库
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

    三、编译安装:

    3.1 编译安装percona-xtrabackup

    cd /usr/local/src/percona-xtrabackup-2.4.5/
    cmake ./ -DBUILD_CONFIG=xtrabackup_release \
    -DWITH_MAN_PAGES=OFF \
    -DDOWNLOAD_BOOST=1 \
    -DWITH_BOOST="/usr/local/boost"
    make -j 4 && make install

    3.2 编译安装Percona-XtraDB-Cluster-5.7.19-29.22

    编译安装前最好要卸载掉本地的mysql数据库
    rpm-qa | grep mysql (注意大小写,如果mysql不行就换MySQL)
    yum -y remove mysql的包名
    卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除
    rm -f /etc/my.cnf
    rm -rf /var/lib/mysql

    创建mysql用户名及文件夹

    mkdir /data/mysql
    ln -s /data/mysql /usr/local/mysql
    mkdir /usr/local/mysql/{binlog,slow} -p
    useradd mysql
    chown -R mysql:mysql /usr/local/mysql

    编译garbd,libgalera_smm.so

    cd /usr/local/mysql
    cd "percona-xtradb-cluster-galera"

    获取revno值

    cat GALERA-REVISION
    #revno="GALERA-REVISION"
    scons -j4 psi=1 --config=forcerevno="8678538"boost_pool=0 libgalera_smm.so
    scons -j4 --config=force revno="8678538" garb/garbd

    创建pxc安装目录

    mkdir -p /usr/local/mysql/{bin,lib}

    拷贝编译结果文件到pxc安装目录

    cp garb/garbd /usr/local/mysql/bin
    cp libgalera_smm.so /usr/local/mysql/lib

    检查复制的文件是否正常

    ls -l /usr/local/mysql/bin/garbd
    ls -l /usr/local/mysql/lib/libgalera_smm.so

    -DMYSQL_SERVER_SUFFIX 值获取

    cd /usr/local/Percona-XtraDB-Cluster-5.7.19-29.22WSREP_VERSION="$(grep WSREP_INTERFACE_VERSION wsrep/wsrep_api.h | cut -d '"' -f2).$(grep 'SET(WSREP_PATCH_VERSION'"cmake/wsrep.cmake" | cut -d '"' -f2)"echo $WSREP_VERSION

    -DCOMPILATION_COMMENT 值获取

    cd /usr/local/Percona-XtraDB-Cluster-5.7.19-29.22source VERSIONMYSQL_VERSION="$MYSQL_VERSION_MAJOR.$MYSQL_VERSION_MINOR.$MYSQL_VERSION_PATCH"echo $MYSQL_VERSIONREVISION="$(cd "$SOURCEDIR"; grep '^short: ' Docs/INFO_SRC |sed -e 's/short: //')"echo "Percona XtraDB Cluster binary (GPL) $MYSQL_VERSION-$WSREP_VERSION Revision $REVISION"

    编译Percona-XtraDB-Cluster-5.7.16-27.19

    cd /usr/local/mysqlcmake ./-DBUILD_CONFIG=mysql_release \-DCMAKE_BUILD_TYPE=RelWithDebInfo \-DWITH_EMBEDDED_SERVER=OFF \-DFEATURE_SET=community \-DENABLE_DTRACE=OFF \-DWITH_SSL=system -DWITH_ZLIB=system \-DCMAKE_INSTALL_PREFIX="/usr/local/mysql" \-DMYSQL_DATADIR="/usr/local/mysql/data" \-DMYSQL_SERVER_SUFFIX="29.22" \-DWITH_INNODB_DISALLOW_WRITES=ON \-DWITH_WSREP=ON \-DWITH_UNIT_TESTS=0 \-DWITH_READLINE=system \-DWITHOUT_TOKUDB=ON \-DWITHOUT_ROCKSDB=ON \-DCOMPILATION_COMMENT="Percona XtraDB Cluster binary (GPL) 5.7.19-29.22 Revision c10027a" \-DWITH_PAM=ON \-DWITH_INNODB_MEMCACHED=ON \-DDOWNLOAD_BOOST=1 \-DWITH_BOOST="/usr/local/boost" \-DWITH_SCALABILITY_METRICS=ONmake && make install
    四、编译配置文件

    4.1 编译配置文件

    vim /usr/local/mysql/my.cnf[client]socket=/tmp/mysql.sockport= 3306default-character-set = utf8[mysqld]socket=/tmp/mysql.sockbasedir = /usr/local/mysqldatadir = /usr/local/mysql/dataport = 3306server_id = 10215pid-file = /usr/local/mysql/mysql.pidkey_buffer_size =128Mmax_allowed_packet = 16Mtable_open_cache = 512max_connections = 200sort_buffer_size = 20Mread_buffer_size = 20Mread_rnd_buffer_size = 8Mmyisam_sort_buffer_size = 64Mthread_cache_size = 8query_cache_size = 32Mcharacter-set-server=utf8innodb_buffer_pool_size = 256Minnodb_log_file_size = 48Minnodb_log_buffer_size = 8Minnodb_flush_log_at_trx_commit = 1innodb_file_per_table=1lower_case_table_names=1innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:5120Mexplicit_defaults_for_timestamp=TRUEsql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,only_full_group_byskip-name-resolvelog-bin = /usr/local/mysql/binlog/mysql-binexpire_logs_days = 7#binlog-do-db=plateform_stable,finance_stable,location_log_stable#binlog-ignore-db=mysql,information_schema,testbinlog_format=ROWlog_slave_updatessymbolic-links=0default_storage_engine=InnoDBinnodb_autoinc_lock_mode=2log-error=/usr/local/mysql/data/mysqld-error.logwsrep_cluster_name = ycpxc ###指定您的群集的逻辑名称。 它必须对群集中的所有节点都相同。wsrep_provider=/usr/local/mysql/lib/libgalera_smm.sowsrep_cluster_address='gcomm://192.168.10.215,192.168.10.214,192.168.10.213'###指定群集中节点的IP地址,节点加入群集至少需要一个,但建议列出所有节点的地址。wsrep_sst_receive_address=192.168.10.215###用于SST传送的端口wsrep_node_incoming_address=192.168.10.215###定义节点期望客户端连接的IP地址和端口。wsrep_provider_options = "gmcast.listen_addr=tcp://192.168.10.215;ist.recv_addr=192.168.10.215;"###gmcast.listen###来自其他节点的地址Galera侦听连接。可以用来覆盖默认端口倾听,这是获得从连接地址。###ist.recv_addr###地址监听增量状态传输。wsrep_slave_threads= 4wsrep_log_conflictswsrep_node_address=192.168.10.215###集群节点地址wsrep_sst_method=xtrabackup-v2###默认情况下,Percona XtraDB群集使用Percona XtraBackup进行状态快照传输(SST)。wsrep_sst_auth=sstuser:passw0rd ###将SST的身份验证凭据指定为<sst_user>:<sst_pass>。 您必须创建此用户wsrep_log_conflictswsrep_retry_autocommit=8secure_file_priv=""innodb_page_cleaners=8[mysqldump]quickmax_allowed_packet = 16M[mysql]no-auto-rehashport= 3306default-character-set = utf8socket=/tmp/mysql.sock[myisamchk]key_buffer_size = 256Msort_buffer_size = 256Mread_buffer = 2Mwrite_buffer = 2M[mysqlhotcopy]interactive-timeout

    注意:在[client]、[mysqld]、[mysql]最好都要指定sock的位置,避免初始化和启动时报错去找默认的配置文件。

    4.2pxc环境所涉及的端口

    #mysql实例端口:3306.

    #pxc cluster相互通讯的端口:4567
    Port for group communication, default 4567. It can be changed by the option:
    wsrep_provider_options ="gmcast.listen_addr=tcp://0.0.0.0:4567; "

    #用于SST传送的端口:4444
    Port for State Transfer, default 4444. It can be changed by the option:
    wsrep_sst_receive_address=10.11.12.205:4444

    #用于IST传送的端口:4568
    Port for Incremental State Transfer, default port for group communication + 1 (4568). It can be changed by the option:
    wsrep_provider_options = "ist.recv_addr=10.11.12.206:4568; "

    4.1 为wsrep_sst_auth传输创建用户
    当引导第一个节点并为其提供必要的权限时:

    mysql> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'passw0rd';
    mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON . TO 'sstuser'@'localhost';
    mysql> FLUSH PRIVILEGES;

    五、初始化启动pxc主节点

    5.1 初始化pxc

    chown -R mysql:mysql /usr/local/mysql

    /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql--initialize 

    初始化错误可以清空msyql/data/目录下的文件
    注意记录密码

    5.2 启动mysql

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

    注意主节点启动要加上--wsrep-new-cluster,其他节点不用。

    用刚刚初始化的密码进去MySQL

    /usr/local/mysql/bin/mysql -uroot -p${mypasswd}

    5.3 更改密码
    第一次进去会提示改密码

    ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

    六、配置其他节点

    6.1 节点配置文件
    192.168.10.214
    安装方式都是和主节点是一样的,注意要卸载掉原来的mysql,更改配置文件的集群信息和server_id 即可。
    只列出差异部分:

    server_id = 10214wsrep_sst_receive_address=192.168.10.214:6615###用于SST传送的端口wsrep_node_incoming_address=192.168.10.214###定义节点期望客户端连接的IP地址和端口。wsrep_provider_options = "gmcast.listen_addr=tcp://192.168.10.214;ist.recv_addr=192.168.10.214:6618;"wsrep_node_address=192.168.10.214###集群节点地址

    192.168.10.213

    server_id = 10213wsrep_sst_receive_address=192.168.10.213###用于SST传送的端口wsrep_node_incoming_address=192.168.10.213###定义节点期望客户端连接的IP地址和端口。wsrep_provider_options = "gmcast.listen_addr=tcp://192.168.10.213;ist.recv_addr=192.168.10.213;"wsrep_node_address=192.168.10.213###集群节点地址

    6.2 启动其他节点
    #其它节点直接启动不用加--wsrep-new-cluster

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

    七、使用garbd

    pxc集群最少是要3台,如果没有,可以使用仲裁者garbd,用来解决
    可以找在一个网段的服务器上。也可以就在已有的节点上但是注意默认的端口不要冲突
    7.1 #启用garbd

    cd /usr/local/mysql/bin/./garbd --group=pxc-cluster --address=gcomm://192.168.10.215,192.168.10.214 --option=gmcast.listen_addr=tcp://192.168.10.213 -d -l /tmp/garbd.log#全部起完了之后就可以看到节点数和集群

    7.2如果要在一台装有pxc 的服务器上起garbd就要更改默认的pxc集群的通信端口

    cd /usr/local/mysql/bin/./garbd --group=pxc-cluster --address=gcomm://192.168.10.215,192.168.10.214 --option=gmcast.listen_addr=tcp://192.168.10.214:5567 -d -l /tmp/garbd.log#全部起完了之后就可以看到节点数和集群
    八、检查
    #查看MySQL 节点数 mysql> show global status like 'wsrep_cluster_size';+--------------------+-------+| Variable_name| Value |+--------------------+-------+| wsrep_cluster_size | 3 |+--------------------+-------+1 row in set (0.00 sec)

    是三个表示pxc集群搭建成功,可以在一个节点上创建一张表,其他节点可以查询的到说明集群运行正常。

    Percona-XtraDB-Cluster的编译安装.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: centos7pxclinux