MySQL 密码管理与恢复
适用于 MySQL 8 与 MariaDB,认证方式按实际版本确认。
修改密码
改环境变量不会修改已有数据库账号,必须执行 SQL。
-- 修改自身密码
ALTER USER CURRENT_USER() IDENTIFIED BY '<新密码>';
-- 管理员修改指定账号,Host 以查询结果为准
SELECT User, Host FROM mysql.user WHERE User = '<账号>';
ALTER USER '<账号>'@'<Host>' IDENTIFIED BY '<新密码>';
改完同步应用和备份任务的密码。
忘记管理员密码
先备份、停应用和数据库。用原镜像、原数据挂载启动临时恢复实例,不发布端口:
--skip-grant-tables
--skip-networking
通过本地 socket 登录:
mysql -u root
# MariaDB 使用 mariadb -u root
FLUSH PRIVILEGES;
SELECT User, Host FROM mysql.user;
ALTER USER '<账号>'@'<Host>' IDENTIFIED BY '<新密码>';
停止恢复实例 → 同步密码配置 → 正常启动 → 验证登录和应用。
关键: 不删数据、不同时启动两个实例读写同一目录;修改 root 前确认认证方式,避免移除 socket 认证。
参考资料
- MySQL 密码恢复
- MariaDB 官网 · 源码 · 文档 #todo
- 镜像环境变量 #todo
- ALTER USER #todo
- 恢复参数 #todo
- MySQL · Podman
- 原始聊天 #todo