【mysql】解决MySQL GPG密钥过期问题

MySQL GPG 密钥过期,yum下载mysql-devel报错

正文开始@Assassin

记录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:
在这里插入图片描述
在这里插入图片描述

<think>首先,用户的问题是关于解决 MySQL 安装包 GPG 密钥与 Yum 源配置不匹配的问题。用户提到了一些引用,但系统指令说这些引用仅供参考,我应该参考用户上一次的问题和我的回答。不过,这是第一个交互,所以没有“上一次”的问题。用户的问题是:“我想查找解决 MySQL 安装包的 GPG 密钥与 Yum 源配置不匹配,导致安装时验证失败问题的步骤”。 系统指令: - 所有行内数学表达式必须使用 $...$ 格式。但在这个上下文中,可能没有数学表达式,所以我可以忽略。 - 独立公式必须使用 $$...$$ 格式,但同样,可能不需要。 - LaTeX 语法正确 – 确保任何数学表达正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识,例如:[^1] 用户提供了引用 [^1] 和 [^2],但系统说“上述引用仅供参考”,所以我应该基于标准知识回答,但可以引用这些作为参考。 关键步骤: 1. **理解问题**:当使用 Yum 安装 MySQL 时,GPG 密钥不匹配导致验证失败。 2. **常见解决方案**: - 更新 Yum 存储库的 GPG 密钥。 - 导入正确的 GPG 密钥。 - 如果上述失败,可以绕过 GPG 检查(不推荐)。 3. **基于引用**: - 引用 [^1] 提到绕过 GPG 检查:`sudo yum install mysql-community-client --nogpgcheck` - 引用 [^2] 提到检查签名和导出密钥。 回答结构: - 由于用户要求步骤,我应该提供一个清晰的步骤指南。 - 使用中文。 - 结尾生成相关问题。 回答大纲: 1. **介绍问题**:简要解释为什么发生这个问题。 2. **解决步骤**: a. 尝试导入正确的 GPG 密钥。 b. 验证密钥。 c. 如果失败,考虑绕过检查(但警告风险)。 3. **生成相关问题**。 步骤细节(基于标准知识): - 步骤1:确认 Yum 源配置是否正确。检查是否有错误。 - 步骤2:导入 GPG 密钥。例如,对于 MySQL,使用命令如 `sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql` 或类似。 - 步骤3:清理 Yum 缓存:`sudo yum clean all` 然后 `sudo yum makecache`。 - 步骤4:重新尝试安装。 - 步骤5:如果仍然失败,可以绕过 GPG 检查,但不推荐:`sudo yum install mysql-community-client --nogpgcheck` 确保回答真实可靠:我可以回忆或基于常识,如果不确定,可以建议官方文档。 引用:在回答中,如果提到引用的内容,添加 [^1] 或 [^2]。例如,提到绕过检查时引用 [^1]。 生成相关问题:在末尾,添加几个相关问题。 最终回答结构: - 开头:解释问题。 - 步骤列表。 - 结尾:生成相关问题。 </think>### 解决 MySQL 安装包 GPG 密钥与 Yum 源配置不匹配问题的步骤 当使用 Yum 安装 MySQL 时,如果 GPG 密钥与配置的 Yum 源不匹配或丢失,会导致软件包验证失败,防止潜在的安全风险。以下是详细的解决步骤(基于最佳实践和参考文档),请按顺序操作以确保安全和可靠性。操作前,请确保您有管理员权限(使用 `sudo`)。 #### 步骤 1: 检查并更新 Yum 源配置 - **为什么需要**:Yum 源文件可能配置错误或密钥过期,导致 GPG 验证失败。 - **操作命令**: 1. 查看当前 MySQL Yum 源文件: ```bash sudo cat /etc/yum.repos.d/mysql-community.repo # 确保文件存在且配置正确 ``` 2. 如果源文件缺失或错误,重新下载官方源配置(以 MySQL 5.7 为例): ```bash sudo yum remove mysql* # 先移除旧配置(可选) sudo wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm sudo rpm -Uvh mysql57-community-release-el7-11.noarch.rpm ``` 3. 清理 Yum 缓存: ```bash sudo yum clean all sudo yum makecache ``` - **预期结果**:更新后,Yum 源应包含正确的 GPG 密钥 URL。如果问题依然存在,转入下一步。 #### 步骤 2: 导入正确的 GPG 密钥 - **为什么需要**:GPG 密钥用于验证软件包完整性;密钥不匹配时需手动导入。 - **操作命令**: 1. 下载并导入 MySQL 官方 GPG 密钥: ```bash sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 # MySQL 5.7 常用密钥,若失效请替换为最新URL ``` 2. 验证密钥是否导入成功: ```bash sudo rpm -qa gpg-pubkey* | grep -i mysql # 检查输出是否有 MySQL 相关密钥 ``` 3. 如果密钥存在但仍不匹配,手动检查软件包签名(参考引用 [^2]): ```bash sudo rpm --checksig /var/cache/yum/x86_64/7/mysql80-community/packages/mysql-community-*.rpm # 替换为实际包路径 ``` - 输出若显示 "BAD" 或 "MISSING KEYS",表示密钥问题。 - **预期结果**:密钥导入后,尝试重新安装 MySQL (`sudo yum install mysql-community-client`)。如果验证通过,则问题解决。 #### 步骤 3: 绕过 GPG 检查(仅当上述步骤失败时使用,不推荐) - **为什么需要**:在密钥无法修复的紧急情况下,临时绕过验证以确保安装,但会跳过安全性检查,可能导致软件包被篡改风险[^1]。 - **操作命令**: 1. 使用 `--nogpgcheck` 标志安装: ```bash sudo yum install mysql-community-client --nogpgcheck # 安装指定包 ``` 2. 完成后,强烈建议重新验证安装: ```bash sudo rpm -V mysql-community-client # 检查包完整性 ``` - **注意**:此方法仅为临时方案。安装后,务必修复密钥问题或从官方源重新安装以恢复安全验证。 #### 常见问题与注意事项 - **原因分析**:GPG 密钥不匹配通常源于 Yum 源配置过期、网络问题导致的密钥下载失败,或系统时间错误。 - **预防措施**:定期更新 Yum 源 (`sudo yum update`) 并检查密钥有效期。 - **官方参考**:详见 [MySQL 文档](https://dev.mysql.com/doc/);如果问题持续,提供错误日志以便进一步诊断。 通过以上步骤,大多数 GPG 密钥问题解决。如果仍有错误,请提供完整终端输出以获取针对性的帮助。
评论 20
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁海没有七号公园

谢谢你%%%

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值