CentOS8でdnfコマンドでMySqlのアップデートで「エラー: GPG の確認に失敗しました」のエラーが発生した場合の対処法


CentOS8でdnfコマンドでMySqlのアップデートで「エラー: GPG の確認に失敗しました」のエラーが発生した時の対処法を残しておきます。

1. エラー発生

CentOS8でdnf upgrade -yのコマンドで以下のエラーが発生しました。

[root@centos8 ~]# dnf upgrade -y
~~~~~~
~ 省略 ~
~~~~~~
(938-939/940): linux 92% [==================  ]  38 MB/s | 1.0 GB     00:02 ETA(938-940/940): mysql 93% [==================- ]  38 MB/s | 1.0 GB     00:02 ETA(938-940/940): mysql 93% [==================- ]  37 MB/s | 1.0 GB     00:01 ETA(938-940/940): mysql 94% [==================- ]  37 MB/s | 1.1 GB     00:01 ETA(938/940): mysql-community-client-8.0.28-1.el8.  11 MB/s |  14 MB     00:01    
(939-940/940): mysql 95% [=================== ]  37 MB/s | 1.1 GB     00:01 ETA(939-940/940): mysql 96% [=================== ]  37 MB/s | 1.1 GB     00:01 ETA(939-940/940): mysql 97% [=================== ]  37 MB/s | 1.1 GB     00:00 ETA(939/940): linux-firmware-20210702-103.gitd79c2  19 MB/s | 161 MB     00:08    
(940/940): mysql-com 97% [===================-]  33 MB/s | 1.1 GB     00:00 ETA(940/940): mysql-com 98% [===================-]  33 MB/s | 1.1 GB     00:00 ETA(940/940): mysql-community-server-8.0.28-1.el8.  18 MB/s |  53 MB     00:03    
--------------------------------------------------------------------------------
合計                                             38 MB/s | 1.1 GB     00:29     
警告: /var/cache/dnf/mysql80-community-b1f1ed5ba88ce0f8/packages/mysql-community-client-plugins-8.0.28-1.el8.x86_64.rpm: ヘッダー V4 RSA/SHA256 Signature、鍵 ID 3a79bd29: NOKEY
MySQL 8.0 Community      [===                 ] ---  B/s |   0  B     --:-- ETAMySQL 8.0 Community Server                      1.1 MB/s |  27 kB     00:00    
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql (0x5072E1F5) の GPG 鍵はインストール済みです
"MySQL 8.0 Community Server" リポジトリーに一覧表示されている GPG 鍵はインストール済みですが、このパッケージには適切ではありません。
正しい鍵 URL がこのリポジトリー用に設定されているか確認してください。. 失敗したパッケージは: mysql-community-client-plugins-8.0.28-1.el8.x86_64
 GPG 鍵が設定されています: file:///etc/pki/rpm-gpg/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 鍵が設定されています: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
mysql-community-client-8.0.28-1.el8.x86_64.rpm の公開鍵がインストールされていません. 失敗したパッケージは: mysql-community-client-8.0.28-1.el8.x86_64
 GPG 鍵が設定されています: file:///etc/pki/rpm-gpg/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 鍵が設定されています: file:///etc/pki/rpm-gpg/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 鍵が設定されています: file:///etc/pki/rpm-gpg/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 鍵が設定されています: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
ダウンロード済みのパッケージは、次の正常なトランザクションまでキャッシュに保存されました。
'dnf clean packages' を実行することでキャッシュパッケージを削除できます。
エラー: GPG の確認に失敗しました
[root@centos8 ~]#

2. 原因

MySQLのGPGキーの有効期限切れのためのようです。
MySQL8.0.28では新しいキーで署名されているようです。

3. 解決方法

以下のコマンドでmysqlのGPGキーをインポートします。

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

実行結果
[root@centos8 ~]# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysqll-2022
[root@centos8 ~]#

再度、dnf upgrade -yのコマンドを実行すると、正常にアップデートされました。

参考

MySQL Bugs: #106188: The MySQL GPG key seems to be incorrect