Ubuntu 22.04 安装 Percona XtraDB Cluster 8.4.11-11 指南
Ubuntu 22.04 安装 PXC 8.4.11-11 全流程实测:percona-release 官方工具、手动 APT 源与离线 deb 包三种方案,含依赖排坑、首启行为与 root 密码设置、安装后验证。
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 系统要求与端口规划
| 端口 | 协议 | 用途 |
|---|---|---|
| 3306 | TCP | MySQL 客户端连接 |
| 4567 | TCP | Galera 集群通信(gcomm,单播走 TCP;仅组播复制场景才用到 UDP 4567) |
| 4568 | TCP | IST 增量状态传输 |
| 4444 | TCP | SST 全量状态传输(默认经 socat 流式转发,仅 SST 期间监听) |
| 9200 | TCP | clustercheck 健康检查(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 mainpercona-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 实测记录与踩坑
- 下载机基线必须与目标机一致。实测曾用一台已预装 curl/openssl 链的机器打包,
--download-only跳过了这些"已装"依赖,离线机安装时报Package libcurl4 is not installed、Package openssl is not installed等未满足依赖。处置:换干净同基线下载机重打;或按报错清单在下载机上apt-get download <包名>逐个补齐后重新安装。 - 不要用递归闭包脚本一把梭。实测
apt-cache depends --recurse生成的包清单会混入bcron、systemd-cron、systemd-standalone-sysusers等冲突替代包(与 cron/systemd 组件互斥),安装时直接报Conflicts:无法解题。以--download-only的精确清单为准。 - 完全隔离且 APT 本地安装不可用时的替代法:
sudo dpkg -i ./pxc-debs/*.deb需要执行两遍——第一遍解决 Pre-Depends 链(如percona-xtradb-cluster-commonPre-Dependsdebsums),第二遍完成剩余 configure。实测第二遍后仅剩个别依赖未闭合,补齐对应 deb 再执行一遍即可。 - 离线机安装完成时
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
参考链接
- Percona XtraDB Cluster 8.4 官方文档:https://docs.percona.com/percona-xtradb-cluster/8.4/
- 官方 APT 仓库(pxc-84-lts):http://repo.percona.com/pxc-84-lts/apt/dists/jammy/
- percona-release 下载页:https://docs.percona.com/percona-software-repositories/percona-release.html
- Percona 生命周期政策:https://www.percona.com/services/policies/percona-software-lifecycle
- 8.0 系列 EOL 公告(2026-07):https://www.percona.com/blog/percona-xtradb-cluster-8-0-end-of-life-announcement/
- XtraBackup 8.4 文档(SST 依赖说明):https://docs.percona.com/percona-xtrabackup/8.4/
- 本专栏部署实测:《Percona XtraDB Cluster 8.4.11-11 3 节点集群部署指南》
- 日常运维命令参考:《Percona XtraDB Cluster 8.4.11-11 常用 CLI 命令与工具详解》
- 同类 MySQL 生态集群对比认知:《Percona XtraDB Cluster 8.4.11-11 介绍与选型指南》