一、背景说明
使用YUM安装mysql5.7的时候报错,报错信息提示未安装公钥。博主查看/etc/yum.repos.d/mysql-community.repo配置文件中关于公钥的配置,确实启用了公钥验证,博主再排查过程中还是走了一些弯路,最终顺利解决了,这里分享一下排查经验。
- 报错信息:
警告:/var/cache/yum/x86_64/7/mysql57-community/packages/mysql-community-common-5.7.44-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
mysql-community-common-5.7.44-1.el7.x86_64.rpm 的公钥尚未安装
二、排查步骤
1、查看yum配置
# cat /etc/yum.repos.d/mysql-community.repo |grep -A 5 mysql57-community
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
2、查看系统中所有已导入的 GPG 公钥及其 ID
博主在安装的时候是直接百度如何导入公钥,导入之后又报错公钥不匹配。实际上上面报错已经明确提示了密钥ID是3a79db29。通过如下命令我们可以看到密钥信息。
# rpm -qa gpg-pubkey --qf “%{NAME}-%{VERSION}-%{RELEASE} %{SUMMARY}\n”
3、导入mysql57公钥
RPM-GPG-KEY-mysql-2022对应的密钥ID就是3a79db29。RPM-GPG-KEY-mysql对应的密钥ID是其他的,安装的时候会报错。
# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
4、再次查看已导入公钥
使用rpm -qa命令再次查看可以看到新导入了MySQL公钥一个。
5、重新安装mysql-server
# yum install -y mysql-community-server
6、启动mysql
# systemctl status mysqld
7、查看mysql状态
# systemctl status mysqld
8、查看初始密码
启动mysqld的时候会随机生成一个初始密码,通过log日志文件查看。
9、通过初始密码登录
通过初始密码登录msyql,登录后需要先修改密码才可以执行命令。修改完密码,至此mysql数据库就安装完成啦。
三、关于GPG密钥常用命令
1、查看密钥列表
# rpm -qa gpg-pubkey
2、查看指定密钥详细信息
通过rpm -qi命令可以查询密钥的详细信息,安装时间、版本、名称、build时间等。
# rpm -qi gpg-pubkey-f4a80eb5-53a7ff4b
3、删除密钥
如果导入了错误的密钥,我们可以使用rpm --erase命令删除。
# rpm --erase gpg-pubkey-0608b895-4bd22942
4、导入密钥
可以从网络或者本地导入密钥。
#rpm --import https://www.example.com/RPM-GPG-KEY
或者
#rpm --import /path/to/RPM-GPG-KEY