一、文档说明
1.1 适用场景
本文适用于 CentOS 7 系统,在安装 MySQL 8.0.45 社区版(通过 YUM 源方式)时,遇到「GPG 密钥已安装但与包不匹配」报错的生产环境解决方案。
核心报错信息(本文重点解决):
The GPG keys listed for the 'MySQL 8.0 Community Server' repository are already installed but they are not correct for this package. Check that the correct key URLs are configured for this repository. Failing package is: mysql-community-common-8.0.45-1.el7.x86_64. GPG Keys are configured as: https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
1.2 环境前提
- 系统:CentOS 7(x86_64,任意内核版本,生产环境稳定版优先);
- 权限:已获取 root 用户权限(生产环境操作必备);
- 状态:已尝试安装 MySQL 8.0.45,出现上述 GPG 密钥不匹配报错,且已清理旧 MySQL YUM 源配置;
- 网络:服务器可正常访问外网(需下载官方密钥及 MySQL 安装包)。
1.3 文档价值
针对生产环境「安全性、合规性」要求,提供「彻底清理密钥冲突 + 重新导入官方全量密钥」的解决方案,不跳过 GPG 验证、不降低系统安全等级,全程可追溯、可复用,解决 CentOS 7 与 MySQL 8.0.45 密钥适配兼容性问题。
二、问题根源分析
生产环境出现该报错的核心原因的是 系统密钥环残留冲突,具体如下:
- MySQL 8.0.45 版本对 GPG 密钥校验更严格,需匹配官方 2022/2023 版密钥;
- 系统此前可能安装过 MySQL 旧版本、旧 YUM 源,导致密钥环中残留旧版 MySQL 密钥(如 0x5072E1F5 旧密钥);
- 残留旧密钥与 MySQL 8.0.45 包所需的新密钥冲突,即使重新导入新密钥,系统仍会优先校验残留旧密钥,导致报错;
- YUM 缓存中留存了旧的密钥校验信息,未彻底清理,进一步加剧冲突。
三、解决方案(生产环境合规版)
核心思路:彻底清理所有 MySQL 相关残留密钥 → 导入 MySQL 官方全量密钥 → 强制刷新 YUM 缓存 → 正常安装 MySQL 8.0.45,全程保留 GPG 验证,符合生产环境安全规范。
步骤 1:清理系统中所有 MySQL 相关 GPG 密钥(关键步骤)
执行以下命令,批量列出并删除密钥环中所有与 MySQL 相关的 GPG 密钥,彻底清除冲突根源(生产环境可安全执行,仅删除 MySQL 相关密钥,不影响其他软件):
# 批量列出并删除所有 MySQL 相关 GPG 密钥
for key in $(rpm -qa gpg-pubkey | grep -i mysql | cut -d '-' -f 4-); do
rpm -e --allmatches gpg-pubkey-$key
done
执行说明:
- 命令会先通过
rpm -qa gpg-pubkey | grep -i mysql列出所有 MySQL 相关密钥; - 通过
cut -d '-' -f 4-提取密钥编号,再通过rpm -e --allmatches彻底删除该密钥(包括所有匹配的版本);

