MySQL子账号过期和连接公钥问题,怎么突然就解决了呢?
- 内容介绍
- 文章标签
- 相关推荐
一、前言:子账号过期+公钥失效,这到底是怎么一回事?
说实话, 我当时真的懵了——手里这套MySQL子账号,忽然报“密码Yi过期”,再去连库却提示“公钥未安装”。我甚至怀疑是不是服务器被外星人入侵了脑子里全是“怎么会这么倒霉”。后来啊呢?居然在一次不经意的重启后一切神奇地恢复正常,像是被施了魔法一样。
1. 子账号过期的常见表现
🔧 登录时出现:

- ERROR 1820 : Your password has expired.
- Access denied for user 'sub_user'@'%'
还有那种让人抓狂的Auntication plugin 'caching_sha2_password' could not be loaded配合公钥错误简直是“双剑合璧”。
2. 公钥失效的尴尬现场
当你尝试用SSL连接时控制台会吐出:
ERROR 2026 : SSL connection error: SSL library error: certificate verify failed
还有那句经典的:
GPG key is already installed but not correct for this package.
我服了。 我甚至怀疑是键盘上哪个键卡住了——每次敲yum install mysql-community-serverdou像在弹钢琴。
二、 突如其来的解决方案:一次偶然的“重启+导入”
下面给大家透露一下我是怎么在毫无头绪的情况下把这堆坑填平的。
1) 检查系统时间
先打开终端敲:
date
如guo系统时间比实际时间慢了几天那密码过期和证书校验dou会闹鬼。 我算是看透了。 调对时间后先给自己一个鼓掌👏。
2) 导入Zui新的MySQL GPG公钥
步骤如下:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2024yum clean all && yum makecache fastyum install mysql-community-client mysql-community-server -y --skip-broken
3) 强制刷新子账号密码策略
ALTER USER 'sub_user'@'%' IDENTIFIED B 痛并快乐着。 Y 'NewPass#1234' PASSWORD EXPIRE NEVER;
闹笑话。 AFAIK,这条语句会把过期标记直接踢掉。ran后别忘记施行FLUSH PRIVILEGES;
4) 重启MySQL服务
/etc/init.d/mysqld restart || systemctl restart mysqld.service,说白了就是...
三、为什么说它“突然”就解决了?——背后的隐形因素大揭秘!
换个赛道。 *运气* + *系统缓存* + *管理员粗心*
- 缓存失效: 有时候yum或rpm缓存里残留旧的公钥文件, 只要清理一下缓存,就Neng让新钥匙生效。
- 权限同步延迟: MySQL内部的权限表需要几秒钟到几分钟才Neng真正刷新完毕,而我们往往在第一时间就去尝试登录。
- #随机噪音#: 在我敲代码的时候, 旁边的咖啡机正好爆炸了一下让我吓得手抖,把错别字写进了命令行……后来啊反而跑通了。
四、实战小技巧表格——快速定位问题根源
| #序号# | 检查项 | 常见错误信息 | 快速修复办法 |
|---|---|---|---|
| 1️⃣ | 系统时间是否准确? | 日期/时间错误导致证书校验失败 | 使用 NTP sync && date -s "$+')" |
| 2️⃣ | GPG密钥是否Zui新? | GPG key is already installed but not correct | # rpm --import ... # yum clean all && yum update -y |
| 3️⃣ | 子账号密码是否Yi过期? | ERROR 1820 : Your password has expired | # ALTER USER ... PASSWORD EXPIRE NEVER ; # FLUSH PRIVILEGES ; |
| 4️⃣ | SSL配置是否完整? | SSL connection error: certificate verify failed | # 检查 my.cnf 中 ssl-ca、 ssl-cert、ssl-key 路径 # 重启服务 |
| 5️⃣ | 缓存是否干净? | 旧包残留导致冲突 | # rm -rf /var/cache/yum/* # yum makecache fast |
五、 :从混沌到光明,只差一次“点亮”操作!
kan完这篇乱七八糟、 情绪化且充满噪音的碎碎念,你或许Yi经对 MySQL 子账号过期和公钥失效有了geng直观、geng “人性化” 的认识。别忘了:**系统时间**、**GPG 密钥**以及**密码策略**永远是Zui容易忽视却Zui关键的三大点。只要你敢动手去点一点 **重启** 或 **导入Zui新密钥**,hen多所谓 “悬案”dou会在不经意间自行消散。祝各位 DBA 大神们早日摆脱卡顿, 在生产环境里畅快奔跑~ 🎉 🎉 🎉 本文为原创,仅供学习交流使用,如需转载请注明出处,谢谢,总体来看...!
一、前言:子账号过期+公钥失效,这到底是怎么一回事?
说实话, 我当时真的懵了——手里这套MySQL子账号,忽然报“密码Yi过期”,再去连库却提示“公钥未安装”。我甚至怀疑是不是服务器被外星人入侵了脑子里全是“怎么会这么倒霉”。后来啊呢?居然在一次不经意的重启后一切神奇地恢复正常,像是被施了魔法一样。
1. 子账号过期的常见表现
🔧 登录时出现:

- ERROR 1820 : Your password has expired.
- Access denied for user 'sub_user'@'%'
还有那种让人抓狂的Auntication plugin 'caching_sha2_password' could not be loaded配合公钥错误简直是“双剑合璧”。
2. 公钥失效的尴尬现场
当你尝试用SSL连接时控制台会吐出:
ERROR 2026 : SSL connection error: SSL library error: certificate verify failed
还有那句经典的:
GPG key is already installed but not correct for this package.
我服了。 我甚至怀疑是键盘上哪个键卡住了——每次敲yum install mysql-community-serverdou像在弹钢琴。
二、 突如其来的解决方案:一次偶然的“重启+导入”
下面给大家透露一下我是怎么在毫无头绪的情况下把这堆坑填平的。
1) 检查系统时间
先打开终端敲:
date
如guo系统时间比实际时间慢了几天那密码过期和证书校验dou会闹鬼。 我算是看透了。 调对时间后先给自己一个鼓掌👏。
2) 导入Zui新的MySQL GPG公钥
步骤如下:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2024yum clean all && yum makecache fastyum install mysql-community-client mysql-community-server -y --skip-broken
3) 强制刷新子账号密码策略
ALTER USER 'sub_user'@'%' IDENTIFIED B 痛并快乐着。 Y 'NewPass#1234' PASSWORD EXPIRE NEVER;
闹笑话。 AFAIK,这条语句会把过期标记直接踢掉。ran后别忘记施行FLUSH PRIVILEGES;
4) 重启MySQL服务
/etc/init.d/mysqld restart || systemctl restart mysqld.service,说白了就是...
三、为什么说它“突然”就解决了?——背后的隐形因素大揭秘!
换个赛道。 *运气* + *系统缓存* + *管理员粗心*
- 缓存失效: 有时候yum或rpm缓存里残留旧的公钥文件, 只要清理一下缓存,就Neng让新钥匙生效。
- 权限同步延迟: MySQL内部的权限表需要几秒钟到几分钟才Neng真正刷新完毕,而我们往往在第一时间就去尝试登录。
- #随机噪音#: 在我敲代码的时候, 旁边的咖啡机正好爆炸了一下让我吓得手抖,把错别字写进了命令行……后来啊反而跑通了。
四、实战小技巧表格——快速定位问题根源
| #序号# | 检查项 | 常见错误信息 | 快速修复办法 |
|---|---|---|---|
| 1️⃣ | 系统时间是否准确? | 日期/时间错误导致证书校验失败 | 使用 NTP sync && date -s "$+')" |
| 2️⃣ | GPG密钥是否Zui新? | GPG key is already installed but not correct | # rpm --import ... # yum clean all && yum update -y |
| 3️⃣ | 子账号密码是否Yi过期? | ERROR 1820 : Your password has expired | # ALTER USER ... PASSWORD EXPIRE NEVER ; # FLUSH PRIVILEGES ; |
| 4️⃣ | SSL配置是否完整? | SSL connection error: certificate verify failed | # 检查 my.cnf 中 ssl-ca、 ssl-cert、ssl-key 路径 # 重启服务 |
| 5️⃣ | 缓存是否干净? | 旧包残留导致冲突 | # rm -rf /var/cache/yum/* # yum makecache fast |
五、 :从混沌到光明,只差一次“点亮”操作!
kan完这篇乱七八糟、 情绪化且充满噪音的碎碎念,你或许Yi经对 MySQL 子账号过期和公钥失效有了geng直观、geng “人性化” 的认识。别忘了:**系统时间**、**GPG 密钥**以及**密码策略**永远是Zui容易忽视却Zui关键的三大点。只要你敢动手去点一点 **重启** 或 **导入Zui新密钥**,hen多所谓 “悬案”dou会在不经意间自行消散。祝各位 DBA 大神们早日摆脱卡顿, 在生产环境里畅快奔跑~ 🎉 🎉 🎉 本文为原创,仅供学习交流使用,如需转载请注明出处,谢谢,总体来看...!

