应下载percona官方安装包而非系统自带mysql-server;rhel/centos选.rpm-bundle.tar,debian/ubuntu选对应版本.deb;卸载mariadb-libs后按shared→client→server顺序安装;配置需启用innodb_buffer_pool_dump_at_shutdown、log_slow_rate_limit等percona特有参数;初始化须手动执行mysqld –initialize。

Percona Server for MySQL 官方安装包怎么选
直接去 https://www.percona.com/downloads/Percona-Server-LATEST/ 下载,别用系统自带的 mysql-server 包——它不是 Percona。重点看后缀:Percona-Server-8.0.x-x86_64-bundle.tar 是完整包(含 client、server、devel 等),Percona-Server-8.0.x-el8-x86_64.rpm-bundle.tar 是 RHEL/CentOS 专用 RPM 合集。Debian/Ubuntu 用户得找 .deb 包,路径里带 ubuntu2004 或 ubuntu2204 字样,别下错发行版。
rpm -ivh 安装时提示依赖冲突或 mariadb-lib 冲突
这是最常卡住的点:系统预装了 mariadb-libs,而 Percona 的 percona-server-shared 和它文件路径重叠。必须先卸载:
sudo rpm -e --nodeps mariadb-libs
再按顺序装(顺序不能错):
percona-server-sharedpercona-server-clientpercona-server-server
如果跳过 shared 直接装 server,启动会报 undefined symbol: my_thread_global_init —— 这是典型的共享库缺失。
my.cnf 配置里哪些 Percona 特有参数值得开
装完默认配置太保守。关键几项建议加到 /etc/my.cnf 的 [mysqld] 段:
-
innodb_buffer_pool_dump_at_shutdown=ON:避免重启后缓存冷启动 -
innodb_stats_on_metadata=OFF:关掉SHOW table STATUS触发统计更新,防锁表 -
log_slow_rate_limit=100:Percona 特有,只记录每秒超过 100 次的慢查询,避免日志爆炸 -
performance_schema=ON:Percona 的 PFS 实现比官方更轻量,建议开
注意:innodb_fast_shutdown 默认是 1,但 Percona 8.0 推荐设为 0(全刷盘),否则可能丢事务日志。
systemctl start mysql 失败,日志里出现 “Table ‘mysql.plugin’ doesn’t exist”
说明初始化没做或失败了。Percona 不像官方版自动运行 mysqld --initialize。必须手动执行:
sudo mysqld --initialize --user=mysql --datadir=/var/lib/mysql
成功后会输出临时 root 密码(在 Error log 末尾,不是终端 stdout)。接着再跑:
sudo systemctl daemon-reload && sudo systemctl enable mysqld && sudo systemctl start mysqld
如果 datadir 已存在旧数据,别直接初始化——先备份 /var/lib/mysql,否则 --initialize 会清空它。
Percona 的配置差异主要藏在细节里:比如 log_slow_rate_limit 这种参数,不查文档根本不知道它存在;而 innodb_fast_shutdown=0 这种看似小调整,实际影响 crash recovery 行为。装完别急着上线,先用 mysqladmin variables | grep -i percona 确认版本和关键开关是否生效。