应导入 MySQL 官方当前有效密钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022,并执行 yum clean all && yum makecache 刷新缓存,确保密钥 ID 3a79bd29 生效且无旧密钥干扰。

直接导入 MySQL 官方当前有效的 GPG 密钥,并刷新 yum 缓存,90% 的 GPG key failed 错误就能解决。这不是网络问题,也不是权限问题,是密钥签名链断裂——系统拿着已过期的旧密钥(key ID 5072e1f5)去验签 2026 年发布的包(由 key ID 3a79bd29 签名),必然失败。
导入正确的密钥 URL:必须用 https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
截至 2026 年 10 月,MySQL 官方所有新发布的 mysql-community- 包(包括 mysql-community-server、mysql-community-client)均由 key ID 3a79bd29 签名。错误提示里出现 NOKEY (3a79bd29) 就是明确信号。
- ✅ 正确做法:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 - ❌ 不要用本地路径:
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql是旧密钥残留,导入无效 - ❌ 不要手动下载再导入:容易因换行或编码损坏导致签名无效
- ⚠️ 如果报
curl: (60) SSL certificate problem:说明系统 CA 证书过旧,临时加--nogpgcheck——仅限这一步:rpm --import --nogpgcheck https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum clean all 和 yum makecache 不可跳过
密钥导入成功 ≠ yum 会立刻用它验证包。yum 缓存里还存着旧元数据,其中硬编码了过期密钥指纹。不清理,它继续拿旧指纹比对新包,照样报错。
解析 MySQL 8.0 的 DDL 脚本,并将表结构导出为 Excel 格式。适用于用户需将 MySQL 的 `CREATE TABLE` 语句转换为结构化的 Excel 文件场景,导出内容包含字段名、数据类型、长度及精度等信息。支持多张表的批量处理,每张表对应 Excel 中的一个独立工作表。适用于数据库文档编写、数据字典生成及模式分析等任务。
- 必须执行:
yum clean all(清空/var/cache/yum下所有缓存,包括 package 和 metadata) - 紧接着执行:
yum makecache(重新拉取仓库信息,绑定新密钥3a79bd29) - 只跑
yum clean metadata不够,可能漏掉已缓存的旧包索引
确认安装的是 mysql-community-server,不是 mysql-server
CentOS 7 自带的 mysql-server 是 MariaDB 兼容包,走系统默认密钥;而 MySQL 官方源提供的是 mysql-community-server,必须配官方密钥。混用会导致签名链断裂。
- 检查 repo 配置:
/etc/yum.repos.d/mysql-community.repo中,[mysql57-community]段enabled=1,且gpgkey=行没被注释或篡改 - 安装命令必须写全:
yum install -y mysql-community-server - 如果之前装过 MariaDB,先清理:
yum remove mariadb-*,否则依赖冲突会干扰 GPG 验证流程
最易忽略的一点:密钥导入和缓存刷新后,仍要检查 rpm -q gpg-pubkey --queryformat '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n' 输出中是否真有 gpg-pubkey-3a79bd29 这一项——别只信“命令没报错”,得亲眼看见 key ID 存在才稳妥。

















