当前位置: 首页 > java >正文

MySQL GPG 密钥更新问题解决文档

MySQL GPG 密钥更新问题解决文档

问题描述

在 CentOS 7 系统上尝试更新 MySQL 包时遇到 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-client-8.0.43-1.el7.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022, file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

问题原因

系统安装的旧版 MySQL GPG 密钥(2022年版本)与新版本 MySQL 8.0.43 包的数字签名不匹配,导致包验证失败。

环境信息

  • 操作系统: CentOS 7.9
  • MySQL 版本: 8.0.33 → 8.0.43
  • 包管理器: YUM
  • 问题时间: 2025-08-23

解决方案

步骤 1: 检查当前安装的 GPG 密钥

rpm -q --qf "%{name}-%{version}-%{release} %{summary}\n" gpg-pubkey | grep -i mysql

结果显示系统已安装的 MySQL GPG 密钥:

  • gpg-pubkey-3a79bd29-61b8bab7
  • gpg-pubkey-5072e1f5-5c4058fb

步骤 2: 下载新的 MySQL GPG 密钥

wget -O mysql-gpg-key.asc https://repo.mysql.com/RPM-GPG-KEY-mysql-2023

步骤 3: 导入新密钥到 RPM 数据库

rpm --import mysql-gpg-key.asc

步骤 4: 验证新密钥已安装

rpm -q --qf "%{name}-%{version}-%{release} %{summary}\n" gpg-pubkey | grep -i mysql

确认新密钥已安装:

  • gpg-pubkey-a8d3785c-6536acda (新安装的2023年密钥)

步骤 5: 重新执行 MySQL 包更新

yum update mysql-community-*

步骤 6: 验证更新结果

mysql --version
# 输出: mysql Ver 8.0.43 for Linux on x86_64 (MySQL Community Server - GPL)

更新详情

  • 更新包数: 7 个 MySQL 相关包
  • 升级版本: MySQL 8.0.33 → 8.0.43
  • 更新包列表:
    • mysql-community-client
    • mysql-community-client-plugins
    • mysql-community-common
    • mysql-community-devel
    • mysql-community-icu-data-files
    • mysql-community-libs
    • mysql-community-server

预防措施

为避免类似问题,建议:

  1. 定期更新 GPG 密钥:定期检查 MySQL 官方发布的 GPG 密钥更新
  2. 使用正确的密钥 URL:确保 YUM 仓库配置指向最新的密钥文件
  3. 在测试环境验证:在生产环境更新前先在测试环境验证

参考资料

  • MySQL 官方 GPG 密钥下载:https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
  • MySQL YUM 仓库配置:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html
http://www.xdnf.cn/news/18601.html

相关文章:

  • Kubernetes网络服务全解析
  • Linux netfilter工作原理详解
  • Mac简单测试硬盘读写速度
  • 暴雨环境漏检率下降78%!陌讯动态融合算法在道路积水识别的工程突破
  • LeetCode 面试经典 150_数组/字符串_找出字符串中第一个匹配项的下标(23_28_C++_简单)(KMP 算法)
  • PyTorch 面试题及详细答案120题(71-85)-- 高级特性与工具
  • Base64 编码优化 Web 图片加载:异步响应式架构(Java 后端 + 前端全流程实现)
  • vue实现小程序oss分片上传
  • 合合信息acge模型获C-MTEB第一,文本向量化迎来新突破
  • 微前端架构核心要点对比
  • C++ 使用最新 MySQL Connector/C++(X DevAPI)+ CMake 完整教程
  • 力扣 30 天 JavaScript 挑战 第38天 (第九题)学习了 语句表达式的区别 高级函数 promise async await 节流
  • 《P3623 [APIO2008] 免费道路》
  • Redis Set 类型详解:从基础命令到实战应用
  • git实战(8)git高阶命令分析【结合使用场景】
  • 本地Docker部署开源Web相册图库Piwigo与在线远程访问实战方案
  • 如何优雅解决 OpenCV 分段错误(Segfault):子进程隔离实战
  • pig框架导入总结
  • 动手学深度学习(pytorch版):第六章节—卷积神经网络(1)从全连接层到卷积
  • 新能源汽车热管理仿真:蒙特卡洛助力神经网络训练
  • Text2SQL、ChatBI简介
  • [Vid-LLM] 功能分类体系 | 视频如何被“观看“ | LLM的主要作用
  • Flink2.0学习笔记:使用HikariCP 自定义sink实现数据库连接池化
  • 一键部署开源 Coze Studio
  • 第三阶段数据库-9:循环,编号,游标,分页
  • 字节跳动开源Seed-OSS:36B参数模型以512K上下文与可控思考预算重新定义AI实用主义
  • [激光原理与应用-320]:结构设计 - Solidworks - 软件工具UI组织的核心概念
  • 解决散点图绘制算法单一导致的数据异常问题
  • STM32窗口看门狗(WWDG)深度解析:精准守护嵌入式系统的实时性
  • python学习DAY49打卡