[MySQL] アップデート時にGPGキーのエラーで停止してしまう場合

小ネタです。 踏み台サーバであるAmazon Linux2にMySQLのクライアントを入れRDSを操作しているのですが、ある日yum updateをしたら途中で停止してしまいました。

エラーメッセージを眺めるとMySQLをアップデートする際にGPGが原因でコケているっぽい。

$ sudo yum update
(中略)
warning: /var/cache/yum/x86_64/2/mysql57-community/packages/mysql-community-libs-5.7.37-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY
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-libs-5.7.37-1.el7.x86_64
 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

RPMyumではパッケージが改ざんされているか検証するためにGPGキーを利用していることがあるのですが、このGPGキーには有効期限が設定されている関係で一定期間が経つと検証が行えなくなりインストールが停止してしまいます。パッケージを作成する際にGPGキーを別の物に変更した場合も同様の現象になります。

解決策

というわけでMySQLの公式ドキュメントにもある通り、新しいGPGキーをインストールすれば解決します。あとは先ほどコケたコマンドをもう一度実行すれば今度はうまく動いてくれるはず。

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

どうも2022年1月18日にMySQL8.0.28がリリースされたタイミングで変更になったようですね。

Note The GnuPG build key used to sign MySQL downloadable packages was updated with the MySQL 8.0.28 release. To avoid key verification errors when upgrading to MySQL 8.0.28 or higher, import the new GnuPG key:

※公式ドキュメントより

参考ページ