跳到主要内容

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 认证。

参考资料​