Percona-XtraDB-Cluster安装
· 阅读需 2 分钟
pxc集群特点
特点 | 说明 |
---|---|
同步复制 | 数据同时写入所有节点,或者即使在单个节点上也发生故障时根本不写入 |
多源复制 | 任何节点都可以触发数据更新。 |
真正的并行复制 | 副本上的多个线程在行级别执行复制 |
自动节点调配 | 只需添加一个节点,它就会自动同步。 |
数据一致性 | 不再有不同步的节点。 |
PXC 严格模式 | 避免使用技术预览功能和不受支持的功能 |
ProxySQL 的配置脚本 | Percona XtraDB Cluster包含proxysql-admin工具,该工具能够自动配置使用ProxySQL的Percona XtraDB Cluster节点。 |
SSL加密的自动配置 | Percona XtraDB Cluster包含pxc-encrypt-cluster-traffic变量,该变量启用SSL加密的自动配置 |
优化性能 | Percona XtraDB Cluster的性能被优化,以适应不断增长的生产负载 |
准备环境
yum install -y openssl socat \
procps-ng chkconfig procps-ng coreutils shadow-utils \
grep libaio libev libcurl perl-DBD-MySQL perl-Digest-MD5 \
libgcc libstdc++ libgcrypt libgpg-error zlib glibc openssl-libs
useradd -M -s /sbin/nologin mysql
mkdir -p /data/mysql /var/run/mysqld /var/log/mysqld
chown -R mysql. /data/mysql /var/run/mysqld /var/log/mysqld
安装
wget https://downloads.percona.com/downloads/Percona-XtraDB-Cluster-80/Percona-XtraDB-Cluster-8.0.27/binary/tarball/Percona-XtraDB-Cluster_8.0.27-18.1_Linux.x86_64.glibc2.17-minimal.tar.gz
tar zxf Percona-XtraDB-Cluster_8.0.27-18.1_Linux.x86_64.glibc2.17-minimal.tar.gz
mkdir -p /usr/local/percona
mv Percona-XtraDB-Cluster_8.0.27-18.1_Linux.x86_64.glibc2.17-minimal /usr/local/percona/mysql
cp /usr/local/percona/mysql/support-files/mysql.server /etc/init.d/mysqld
sed -i 's/^basedir=.*/basedir=\/usr\/local\/percona\/mysql/' /etc/init.d/mysqld
sed -i 's/^datadir=.*/datadir=\/data\/mysql/' /etc/init.d/mysqld
cat <<EOF > /etc/profile.d/mysql.sh
export PATH=$PATH:/usr/local/percona/mysql/bin
EOF
source /etc/proflie
生成配置文件
不同节点需要修改
server-id
、wsrep_node_name
、wsrep_node_address
cat <<EOF > /etc/my.cnf.d/pxc.cnf
[client]
socket=/var/run/mysqld/mysql.sock
[mysqld]
basedir=/usr/local/percona/mysql
datadir=/data/mysql
socket=/var/run/mysqld/mysql.sock
pid-file=/var/run/mysqld/mysqld.pid
log-error=/var/log/mysqld/mysqld.log
server-id=14
user=mysql
log-bin
binlog_format=ROW
binlog_expire_logs_seconds=604800
innodb_autoinc_lock_mode=2
default_storage_engine=InnoDB
log_timestamps=SYSTEM
######## wsrep ###############
wsrep_cluster_name=pxc-cluster-tt
wsrep_cluster_address=gcomm://172.16.7.14,172.16.7.15,172.16.7.16
wsrep_node_name=pxc-node-14
wsrep_node_address=172.16.7.14
wsrep_applier_threads=8
wsrep_log_conflicts
pxc_strict_mode=ENFORCING
wsrep_sst_method=xtrabackup-v2
wsrep_provider=/usr/local/percona/mysql/lib/libgalera_smm.so
wsrep_provider_options="socket.ssl_key=server-key.pem;socket.ssl_cert=server-cert.pem;socket.ssl_ca=ca.pem"
[sst]
encrypt=4
ssl-key=server-key.pem
ssl-ca=ca.pem
ssl-cert=server-cert.pem
EOF
初始化数据库
mysqld --initialize
启动数据库
提示
从 8.0.31 版本开始,SST 复制在 root 用户下停止工作。myqld不能在root下启动!
su mysql -s /bin/bash -c '/etc/init.d/mysqld start'
#第一个启动节点必须使用bootstrap-pxc方式,须注释functions不使用systemd不然bootstrap-pxc参数无效
sed -i 's/^. \/etc\/rc.d\/init.d\/functions/#&/' /etc/init.d/mysqld
/etc/init.d/mysqld bootstrap-pxc
#其他节点启动
#同步证书,其他节点必须使用第一个启动节点的证书
rsync -aP 172.16.7.14:/data/mysql/*.pem /data/mysql
/etc/init.d/mysqld start