Ubuntu 22.04 安装 Percona XtraDB Cluster 8.4.11-11 指南

Ubuntu 22.04 安装 PXC 8.4.11-11 全流程实测:percona-release 官方工具、手动 APT 源与离线 deb 包三种方案,含依赖排坑、首启行为与 root 密码设置、安装后验证。

Percona XtraDB ClusterPercona XtraDB ClusterMySQL数据库2026/10/20

Ubuntu 22.04 安装 Percona XtraDB Cluster 8.4.11-11 指南

目标:在 Ubuntu Server 22.04 LTS(jammy)上安装 Percona XtraDB Cluster(PXC)8.4 系列最新稳定版 8.4.11-11(基于 Percona Server 8.4.11 / MySQL 8.4.11,Galera 复制库 4.27 / WSREP 复制插件 26.1.4.3),覆盖官方 percona-release 工具安装、手动配置 APT 源、离线环境 deb 包安装三种方案,并给出安装后验证与常见问题处置。本文全部命令与回显均于 2026-10-20 在 Ubuntu 22.04 实测通过;3 节点集群组网与 bootstrap 流程见本专栏《Percona XtraDB Cluster 8.4.11-11 3 节点集群部署指南》。

一、环境信息

项目值
操作系统Ubuntu Server 22.04 LTS(jammy),x86_64
软件版本Percona XtraDB Cluster 8.4.11-11(deb 包名 1:8.4.11-11-1.jammy)
配套组件Percona XtraBackup 8.4.0-7(percona-xtrabackup-84)、percona-release 1.0-34.generic、percona-telemetry-agent 1.0.18-1.jammy
官方仓库http://repo.percona.com/pxc-84-lts/apt(jammy)
实测日期2026-10-20
版本实查8.0 系列已于 2026-07 官方公告 EOL(最终版 8.0.46-38);9.x 尚未 GA,percona-release setup pxc97lts 实测报 Specified repository does not exist,因此 8.4 LTS 为当前唯一活跃稳定线

版本核对方法(任选其一):

# 官方仓库版本清单
apt-cache policy percona-xtradb-cluster-server
# 实测回显(节选)
# percona-xtradb-cluster-server:
#   Installed: 1:8.4.11-11-1.jammy
#   Candidate: 1:8.4.11-11-1.jammy
#   Version table:
#  *** 1:8.4.11-11-1.jammy 500
#         500 http://repo.percona.com/pxc-84-lts/apt jammy/main amd64 Packages

二、安装前准备

2.1 系统要求与端口规划

端口协议用途
3306TCPMySQL 客户端连接
4567TCPGalera 集群通信(gcomm,单播走 TCP;仅组播复制场景才用到 UDP 4567)
4568TCPIST 增量状态传输
4444TCPSST 全量状态传输(默认经 socat 流式转发,仅 SST 期间监听)
9200TCPclustercheck 健康检查(systemd socket 激活,按需启用)

建议:节点间时间同步(chrony/NTP)、关闭 SWAP 或调低 swappiness、vm.swappiness=1、文件句柄上限调高。单机体验安装可跳过本节,直接进入方案 A。

2.2 安装系统基础依赖

percona-release 包与 PXC 安装过程都依赖以下基础工具,必须先装(实测缺失时 percona-release 的 deb 安装会卡在半配置状态,详见 7.2):

sudo apt-get update
sudo apt-get install -y curl lsb-release gnupg2

三、方案 A:percona-release 官方工具安装(推荐)

3.1 安装 percona-release

curl -O https://repo.percona.com/apt/percona-release_latest.generic_all.deb
sudo dpkg -i percona-release_latest.generic_all.deb

实测回显(关键行):

Selecting previously unselected package percona-release.
(Reading database ... 100950 files and directories currently installed.)
Unpacking percona-release (1.0-34.generic) ...
Setting up percona-release (1.0-34.generic) ...
...
* This script enables 'percona-release' repositories in your system.

该包同时把官方签名密钥环落到 /usr/share/keyrings/percona-keyring.gpg(方案 B 手动配源直接复用它)。

3.2 启用 pxc-84-lts 仓库

sudo percona-release setup pxc84lts

实测该命令启用三个仓库并写入 /etc/apt/sources.list.d/:

  • percona-pxc-84-lts-release.list → http://repo.percona.com/pxc-84-lts/apt jammy main
  • percona-pxb-84-lts-release.list → http://repo.percona.com/pxb-84-lts/apt jammy main(XtraBackup 8.4 仓库)
  • percona-telemetry-release.list → http://repo.percona.com/telemetry/apt jammy main(必须保留,percona-xtradb-cluster-server 依赖 percona-telemetry-agent,实测缺失该源时安装报依赖错误)

每行格式实测如下(由 percona-release 自动生成):

deb [signed-by=/usr/share/keyrings/percona-keyring.gpg] http://repo.percona.com/pxc-84-lts/apt jammy main

注意:实测 percona-release setup pxc97lts 返回 ERROR: Specified repository does not exist(9.7 未 GA),当前应使用 pxc84lts。

3.3 安装 PXC 与 XtraBackup

sudo apt-get update
sudo apt-get install -y percona-xtradb-cluster percona-xtrabackup-84

说明:

  • percona-xtradb-cluster 是元包,依赖 percona-xtradb-cluster-server 与 percona-xtradb-cluster-client;
  • percona-xtradb-cluster-server 自身依赖 socat、netcat-openbsd(SST 传输通道)与 percona-telemetry-agent,均由 APT 自动解决;
  • percona-xtrabackup-84 不在 server 的依赖链里,必须显式安装——PXC 8.4 的 SST 默认方法 xtrabackup-v2 运行时需要它(实测 8.4 系列 XtraBackup 由 server 包内置路径 /usr/bin/pxc_extra/pxb-8.4/bin/xtrabackup 提供,同时在 /usr/bin/xtrabackup 提供包装器,xtrabackup --version 实测输出 8.4.0-7 based on MySQL server 8.4.0)。

3.4 首次启动行为与 root 密码设置

Ubuntu/Debian 打包的 mysql.service 默认 enabled,安装完成时 postinst 会自动拉起一次 mysqld——此时 wsrep_cluster_address 为空(gcomm://),节点会自动组成一个单节点集群并生成独立的数据目录证书。本机体验无妨;若这台机器随后要加入已有集群,请先按《Percona XtraDB Cluster 8.4.11-11 3 节点集群部署指南》改好配置并停掉服务再操作,避免带着错误的集群 UUID/证书入网。

首次登录与设置 root 密码(Debian 打包默认 root@localhost 走本地免密通道进入,认证插件为 caching_sha2_password,实测查询 mysql.user 确认):

sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Pxc#2026';
FLUSH PRIVILEGES;

之后即可密码登录:mysql -uroot -p。

四、方案 B:手动配置官方 APT 源

适用场景:受控环境不使用 percona-release 的仓库管理子命令,希望源文件完全人工可控。密钥环复用 percona-release 包提供的官方文件(先按 3.1 安装该包即可,无需执行 setup)。

创建 /etc/apt/sources.list.d/percona-pxc84.list(实测内容):

deb [signed-by=/usr/share/keyrings/percona-keyring.gpg] http://repo.percona.com/pxc-84-lts/apt jammy main
deb [signed-by=/usr/share/keyrings/percona-keyring.gpg] http://repo.percona.com/pxb-84-lts/apt jammy main
deb [signed-by=/usr/share/keyrings/percona-keyring.gpg] http://repo.percona.com/telemetry/apt jammy main

安装:

sudo apt-get update
sudo apt-get install -y percona-xtradb-cluster percona-xtrabackup-84

实测要点:三行缺一不可——缺 telemetry 行时 percona-xtradb-cluster-server 因 percona-telemetry-agent 无法定位而报依赖错误;缺 pxb-84-lts 行时 percona-xtrabackup-84 无法定位。

五、方案 C:离线环境 deb 包安装

适用场景:目标服务器无法访问公网仓库。核心思路是在与目标机同基线(同版本 Ubuntu 22.04、尽量接近的基础包状态)的联网下载机上做 --download-only 打包,整包传输后在离线机本地安装。

5.1 联网下载机打包

mkdir -p ~/pxc-debs
sudo apt-get update
sudo apt-get install --download-only -y \
  -o Dir::Cache::archives=$HOME/pxc-debs \
  percona-xtradb-cluster percona-xtrabackup-84

实测结果:下载 67 个 deb,共 239MB(含 PXC 全家 + XtraBackup + socat/netcat/libcurl/percona-telemetry-agent 等完整依赖闭包),末行回显 Download complete and in download only mode。

打包后核对包数:

ls ~/pxc-debs/*.deb | wc -l   # 实测 67
du -sh ~/pxc-debs             # 实测 239M

5.2 传输与离线安装

# 联网下载机:打包传输(示例用 scp)
tar czf pxc-debs.tgz -C ~ pxc-debs
scp pxc-debs.tgz user@离线机:/tmp/

# 离线机:解包并本地安装
cd /tmp && tar xzf pxc-debs.tgz
sudo apt-get install -y ./pxc-debs/*.deb

实测:apt-get install 对本地 deb 参数会自动排序,67 个包一次完成 unpack + configure(Setting up 67 行,退出码 0)。

5.3 实测记录与踩坑

  1. 下载机基线必须与目标机一致。实测曾用一台已预装 curl/openssl 链的机器打包,--download-only 跳过了这些"已装"依赖,离线机安装时报 Package libcurl4 is not installed、Package openssl is not installed 等未满足依赖。处置:换干净同基线下载机重打;或按报错清单在下载机上 apt-get download <包名> 逐个补齐后重新安装。
  2. 不要用递归闭包脚本一把梭。实测 apt-cache depends --recurse 生成的包清单会混入 bcron、systemd-cron、systemd-standalone-sysusers 等冲突替代包(与 cron/systemd 组件互斥),安装时直接报 Conflicts: 无法解题。以 --download-only 的精确清单为准。
  3. 完全隔离且 APT 本地安装不可用时的替代法:sudo dpkg -i ./pxc-debs/*.deb 需要执行两遍——第一遍解决 Pre-Depends 链(如 percona-xtradb-cluster-common Pre-Depends debsums),第二遍完成剩余 configure。实测第二遍后仅剩个别依赖未闭合,补齐对应 deb 再执行一遍即可。
  4. 离线机安装完成时 mysql.service 为 enabled/inactive,首次启动与 bootstrap 流程与在线安装一致(见 3.4 与集群部署指南)。

六、安装后验证

# 版本核对(实测回显)
mysqld --version
# /usr/sbin/mysqld  Ver 8.4.11-11.1 for Linux on x86_64
#  (Percona XtraDB Cluster (GPL), Release rel11, Revision 33f7510, WSREP version 26.1.4.3)

xtrabackup --version
# 实测:8.4.0-7 based on MySQL server 8.4.0 Linux (x86_64)

# 服务与监听
systemctl status mysql --no-pager | head -5
ss -lntp | grep -E '3306|4567'
# LISTEN 0 151 *:3306  ... users:(("mysqld",pid=...,fd=27))
# LISTEN 0 4096 0.0.0.0:4567 ... users:(("mysqld",pid=...,fd=8))

# APT 侧来源确认
apt-cache policy percona-xtradb-cluster-server | head -6

七、常见问题

7.1 报错 ERROR: Specified repository does not exist

percona-release setup pxc97lts 所指的 9.7 仓库尚未开放(9.x 未 GA)。当前稳定线为 8.4 LTS,使用 percona-release setup pxc84lts。

7.2 percona-release 安装后卡在半配置状态

dpkg -i percona-release_latest.generic_all.deb 若在缺 curl/lsb-release 的机器上执行,包会停在 iU(unpacked, not configured)态,后续 percona-release 命令误报仓库不存在。处置:

sudo dpkg --purge percona-release
sudo apt-get install -y curl lsb-release gnupg2
sudo dpkg -i percona-release_latest.generic_all.deb

7.3 E: Unable to locate package percona-xtradb-cluster

percona-release setup 未执行成功或执行后未刷新索引。核对 /etc/apt/sources.list.d/percona-pxc-84-lts-release.list 存在且内容指向 pxc-84-lts/apt jammy main,然后 sudo apt-get update。

7.4 安装时报 percona-telemetry-agent 依赖错误

telemetry 源被剔除或未启用。percona-xtradb-cluster-server 硬依赖 percona-telemetry-agent,恢复 percona-telemetry-release.list(方案 A 重跑 setup,方案 B 补第三行)后重试。

7.5 配置 wsrep_sst_auth 后 mysqld 拒绝启动

8.4 版本已移除 wsrep_sst_auth 系统变量,配置文件中出现会报 unknown variable 并退出。SST 传输账号在 8.4 中为全自动机制:SST 发起时由 donor 端临时创建本地专用账号(随机密码、用完即删),无需手工配置任何凭据项。

7.6 安装完成即形成单节点集群

Ubuntu 打包 mysql.service enabled,postinst 自动拉起后以空 gcomm:// 自举。若该机要加入既有集群:先 systemctl stop mysql,按集群部署指南写好 wsrep_cluster_address 与节点配置后再启动。

八、卸载与清理

sudo systemctl stop mysql@bootstrap 2>/dev/null
sudo systemctl stop mysql
sudo apt-get purge -y 'percona-xtradb-cluster*' percona-xtrabackup-84
# 数据目录与配置残留按需清理(会删除全部数据,谨慎)
sudo rm -rf /var/lib/mysql /etc/mysql

参考链接

  1. Percona XtraDB Cluster 8.4 官方文档:https://docs.percona.com/percona-xtradb-cluster/8.4/
  2. 官方 APT 仓库(pxc-84-lts):http://repo.percona.com/pxc-84-lts/apt/dists/jammy/
  3. percona-release 下载页:https://docs.percona.com/percona-software-repositories/percona-release.html
  4. Percona 生命周期政策:https://www.percona.com/services/policies/percona-software-lifecycle
  5. 8.0 系列 EOL 公告(2026-07):https://www.percona.com/blog/percona-xtradb-cluster-8-0-end-of-life-announcement/
  6. XtraBackup 8.4 文档(SST 依赖说明):https://docs.percona.com/percona-xtrabackup/8.4/
  7. 本专栏部署实测:《Percona XtraDB Cluster 8.4.11-11 3 节点集群部署指南》
  8. 日常运维命令参考:《Percona XtraDB Cluster 8.4.11-11 常用 CLI 命令与工具详解》
  9. 同类 MySQL 生态集群对比认知:《Percona XtraDB Cluster 8.4.11-11 介绍与选型指南》