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数据库MyISAM存储引擎转为Innodb的方法

    MySQL数据库MyISAM存储引擎转为Innodb的方法

    mysql数据库存储引擎为MyISAM的时候,在大访问量的情况下数据表有可能会出现被锁的情况,这就会导致用户连接网站时超时而返回502,此时就需要MySQL数据库MyISAM存储引擎转为Innodb,这篇文章主要介绍了MySQL数据库MyISAM存储引擎转为Innodb的方法,需要的朋友可以参考下
    2014-06-06
  • 浅谈mysql双层not exists查询执行流程

    浅谈mysql双层not exists查询执行流程

    本文主要介绍了浅谈mysql双层not exists查询执行流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • phpstudy安装后mysql无法启动的解决

    phpstudy安装后mysql无法启动的解决

    本文主要介绍了phpstudy安装后mysql无法启动的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • mysql 维护常用命令

    mysql 维护常用命令

    需要维护mysql数据库的朋友可以参考下。
    2009-11-11
  • MySQL如何解决幻读问题

    MySQL如何解决幻读问题

    在高并发数据库系统中,需要保证事务与事务之间的隔离性,还有事务本身的一致性。所以需要解决幻读问题,本文就来介绍一下,感兴趣的可以了解一下
    2021-08-08
  • Navicat查询结果不能修改的原因及解决方法

    Navicat查询结果不能修改的原因及解决方法

    下面小编就为大家带来一篇Navicat查询结果不能修改的原因及解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • MySQL中修改表结构时需要注意的一些地方

    MySQL中修改表结构时需要注意的一些地方

    这篇文章主要介绍了MySQL中修改表结构时需要注意的一些地方,作者援引Percona的相关的说明来讲述如何避免相关操作导致表无法使用的问题,一些需要的朋友可以参考下
    2015-06-06
  • MySQL系列之开篇 MySQL关系型数据库基础概念

    MySQL系列之开篇 MySQL关系型数据库基础概念

    数据库是指长期储存在计算机中的有组织的、可共享的数据集合,数据具有三大基本特点,永久存储,有组织,可共享,是数据库系统的核心,本文给大家分享MySQL关系型数据库基础概念,需要的朋友参考下吧
    2021-07-07
  • 关于Mysql中ON与Where区别问题详解

    关于Mysql中ON与Where区别问题详解

    在编写SQL脚本中,多表连接查询操作需要使用到on和where条件,但是经常会混淆两者的用法,从而造成取数错误,下面这篇文章主要给大家介绍了关于Mysql中ON与Where区别问题的相关资料,需要的朋友可以参考下
    2022-02-02
  • MySQL实现批量插入以优化性能的教程

    MySQL实现批量插入以优化性能的教程

    这篇文章主要介绍了MySQL实现批量插入以优化性能的教程,文中给出了运行时间来表示性能优化后的对比,需要的朋友可以参考下
    2015-04-04

最新评论