MySQL GPG密钥过期问题及解决方案

 更新时间:2026年05月10日 10:33:17   作者:宁海没有七号公园  
作者在CentOS7上on执行make编译时遇到找不到mysql.h头头文件的问题,通过安装相关包暂时解决,后at尝试安装MySQL相关包时遇到GPG密钥已过期问题,最终解决方案是在执行安装程序之前导入MySQL公钥,然后使用`yum installmysql-devel`命令安装

记录make中的一次报错~~

刚刚centos7在执行make时遇到以下报错:

fatal error: mysql/mysql.h: No such file or directory
#include<mysql/mysql.h>
compilation terminated.

原因是找不到mysql.h头文件,于是使用以下命令安装对应的包:

sudo yum install mysql-devel

但是却出现了如下的报错: 

只能说翻来覆去找了很久都没找到有用的方法,还是得StackOverflow

Downloading packages:
warning: /var/cache/yum/x86_64/7/mysql57-community/packages/mysql-community-devel-5.7.37-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql


The GPG keys listed for the "MySQL 5.7 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-devel-5.7.37-1.el7.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
 
==翻译:==
 
警告:/var/cache/yum/ x86_64/7/mysql57-community/packages/mysql-community-libs-compat-5.7.37-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY
Retrieving key from file:/// etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

为“MySQL 5.7 社区服务器”存储库列出的 GPG 密钥已经安装,但它们对于这个包不正确。
检查是否为此存储库配置了正确的密钥 URL。

失败的包是:mysql-community-libs-compat-5.7.37-1.el7.x86_64
GPG 密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

症状

官方 MySQL 存储库的 GPG 密钥已过期,无法安装或更新 MySQL 包。

为 “MySQL 5.7 社区服务器” 存储库列出的 GPG 密钥已经安装,但它们对于这个包不正确

错误类似于:

为“MySQL 8.0 社区服务器”存储库列出的 GPG 密钥已安装,但对于此包来说它们不正确。检查是否为此存储库配置了正确的密钥 URL。失败的包是:mysql-community-client-8.0.28-1.el8.x86_64 GPG 密钥配置为:http://repo.mysql.com/RPM- GPG-KEY-mysql未安装 mysql-community-client-plugins-8.0.28-1.el8.x86_64.rpm 的公钥。失败的包是:mysql-community-client-plugins-8.0.28-1.el8.x86_64 GPG 密钥配置为:http://repo.mysql.com/RPM-GPG-KEY-mysql mysql-community 的公钥-common-8.0.28-1.el8.x86_64.rpm 未安装。失败的包是:mysql-community-common-8.0.28-1.el8.x86_64 GPG 密钥配置为:http://repo.mysql.com/RPM-GPG-KEY-mysql未安装 mysql-community-devel-8.0.28-1.el8.x86_64.rpm 的公钥。失败的包是:mysql-community-devel-8.0.28-1.el8.x86_64 GPG 密钥配置为:http://repo.mysql.com/RPM-GPG-KEY-mysql mysql-community-icu 的公钥-data-files-8.0.28-1.el8.x86_64.rpm 未安装。失败的包是:mysql-community-icu-data-files-8.0.28-1.el8.x86_64 GPG 密钥配置为:http://repo.mysql.com/RPM-GPG-KEY-mysql mysql 的公钥-community-libs-8.0.28-1.el8.x86_64.rpm 未安装。失败的包是:mysql-community-libs-8.0.28-1.el8.x86_64 GPG 密钥配置为:http://repo.mysql.com/RPM-GPG-KEY-mysql未安装 mysql-community-server-8.0.28-1.el8.x86_64.rpm 的公钥。失败的包是:mysql-community-server-8.0.28-1.el8.x86_64 GPG 密钥配置为:http://repo.mysql.com/RPM-GPG-KEY-mysql 错误:GPG 检查失败

描述

MySQL GPG 密钥已过期。有关案例的其他详细信息也可以在 MySQL 网站上找到: https://bugs.mysql.com/bug.php?id=106188

解决方法

Note

If you are using RPM 4.1 and it complains about (GPG) NOT OK (MISSING KEYS: GPG#3a79bd29), even though you have imported the MySQL public build key into your own GPG keyring, you need to import the key into the RPM keyring first. RPM 4.1 no longer uses your personal GPG keyring (or GPG itself). Rather, RPM maintains a separate keyring because it is a system-wide application and a user’s GPG public keyring is a user-specific file. To import the MySQL public key into the RPM keyring, first obtain the key, then use rpm --import to import the key. For example:

可以在运行安装程序之前导入密钥:

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

Ubuntu:

wget -q -O - https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 | apt-key add -

之后再执行yum install mysql-devel 就over了

makefile:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MySql中JOIN的用法示例详解

    MySql中JOIN的用法示例详解

    join顾名思义就是连接两张表,大致分为内连接,外连接,右连接,左连接,自然连接,今天通过本文给大家介绍MySql中JOIN的用法详解,感兴趣的朋友一起看看吧
    2022-03-03
  • Mysql中的自连接问题

    Mysql中的自连接问题

    这篇文章主要介绍了Mysql中的自连接问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 浅谈MySQL与redis缓存的同步方案

    浅谈MySQL与redis缓存的同步方案

    这篇文章主要介绍了浅谈MySQL与redis缓存的同步方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • MySQL系列理解运用union(all)与limit及exists关键字教程

    MySQL系列理解运用union(all)与limit及exists关键字教程

    这篇文章主要为大家介绍了MySQL系列中union(all)、limit及exists关键字的教程示例讲解,通过本篇文章就可以理解MySQL中的这些关键字的概念以及实际的运用
    2021-10-10
  • Windows系统下mysql5.7.21安装详细教程

    Windows系统下mysql5.7.21安装详细教程

    这篇文章主要为大家详细介绍了Windows系统下mysql5.7.21安装详细教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • Linux下安装MySQL5.7.19问题小结

    Linux下安装MySQL5.7.19问题小结

    第一次在自己虚机上安装mysql 中间碰到很多问题 在这里记下来,特此分享到脚本之家平台供大家参考
    2017-08-08
  • Mysql中二进制日志操作方法说明

    Mysql中二进制日志操作方法说明

    这篇文章主要介绍了Mysql中二进制日志操作方法,二进制日志中以“事件”的形式记录了数据库中数据的变化情况,对于MySQL数据库的灾难恢复起着重要的作用
    2023-03-03
  • mysql开启慢查询(EXPLAIN SQL语句使用介绍)

    mysql开启慢查询(EXPLAIN SQL语句使用介绍)

    这篇文章主要介绍了mysql开启慢查询 EXPLAIN SQL语句,需要的朋友可以参考下
    2018-01-01
  • MySQL创建和删除数据表的命令及语法详解

    MySQL创建和删除数据表的命令及语法详解

    这篇文章主要介绍了MySQL创建和删除数据表的命令及语法,是MySQL入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11
  • MySQL 管理

    MySQL 管理

    MySQL 管理...
    2006-12-12

最新评论