首页 > Wordpress > 正文

WordPress 忘记管理员密码怎么重置?WP-CLI 与数据库两种方法

fenij 2026-08-17 41 Wordpress

管理员密码忘了、后台进不去,先别想着重装。只要还能连上服务器(SSH)或进数据库,几分钟就能重置,不用动网站文件。下面给三种方法,从最简单到兜底,总有一种你用得上。

方法一:登录页「忘记密码」(需邮件可用)

最省事:登录页点「忘记密码」,系统发邮件给重置链接。但很多 VPS 根本没配邮件服务,链接发不出去——这种直接跳下面两种方法,别在邮件上耗。

方法二:WP-CLI 一行重置(推荐)

有 SSH 且装了 WP-CLI 最方便,进到网站根目录一行搞定:

# 直接设新密码
wp user update 管理员用户名 --user_pass=新密码
# 或生成一个随机密码并打印出来
wp user reset-password 管理员用户名

注意在站点根目录(有 wp-config.php 的地方)执行,新密码要够强,否则 WP-CLI 会拒绝。用户名拿不准就 wp user list 看一下。

方法三:直接改数据库(phpMyAdmin / 命令行)

没 WP-CLI 也能改数据库。关键点:wp_users 表的 user_pass 字段是哈希值,不能填明文,得用 MySQL 的 MD5() 函数包一层:

UPDATE wp_users
SET user_pass = MD5('新密码')
WHERE user_login = '管理员用户名';

表前缀可能不是 wp_,先 SHOW TABLES; 找 users 表。改完用新密码登录,进后台在「个人资料」里再设一次——WP 会自动把它转成更安全的哈希。

方法 前提 难度
登录页邮件重置 邮件服务可用 ★ 最简单
WP-CLI 有 SSH + WP-CLI ★★ 推荐
改数据库 能进 phpMyAdmin/MySQL ★★★ 兜底

踩坑实录

有回帮人处理,在 phpMyAdmin 里手滑把 user_pass 直接填了明文 newpass123,满以为搞定,结果登录提示密码错。原因是 WP 存的密码是经 MD5 中转的哈希,直接写明文它压根不认。改成 MD5('newpass123') 立刻就好。还有一次,人进去了却是「订阅者」角色——wp_capabilities 字段被之前误操作改坏,得把它改回管理员。所以重置完最好顺手确认下角色。

顺手确认角色没坏

如果登录后权限不对(比如看不到后台菜单),查一下用户元数据:

SELECT * FROM wp_usermeta
WHERE user_id = 1 AND meta_key = 'wp_capabilities';

正常值应是 a:1:{s:13:"administrator";b:1;}。如果不对,直接 UPDATE 把它改回,或者登录后在「用户 → 我的资料」里重新选角色。

临时进不去的应急法

要是连数据库都进不去,还有 FTP 改 functions.php 建临时管理员账号的招(登录后务必删掉那段代码,别留后门)。更完整的登录故障排查可以看这篇 WordPress 后台无法登录怎么办

常见问题

改了密码还是登不进?
多半是 cookie 或安全插件拦截。清浏览器 cookie、用无痕模式,或临时停用 Wordfence 这类登录限制插件再试。

用 MD5 存密码不安全吧?
只是重置入口用了 MD5,你登录成功后 WP 会自动把密码重哈希成更安全的算法,不影响长期安全。

表前缀不是 wp_ 怎么办?
SHOW TABLES; 找到实际的 users 表名,把 SQL 里的 wp_ 替换掉即可。

重置完要做啥?
用新密码登录,到「用户 → 个人资料」里设一个自己记得的强密码,就完事了。

你重置 WP 密码用的最顺手的是哪招?欢迎到 fenij.com 评论区说说。

排错自查清单

  • ☐ 方法一:登录页「忘记密码」(需邮件可用):最省事:登录页点「忘记密码」,系统发邮件给重置链接。但很多 VPS 根本没配邮件服务,链接发不出去——这种直接
  • ☐ 方法二:WP-CLI 一行重置(推荐):有 SSH 且装了 WP-CLI 最方便,进到网站根目录一行搞定:
  • ☐ 方法三:直接改数据库(phpMyAdmin / 命令行):没 WP-CLI 也能改数据库。关键点:wp_users 表的 user_pass 字段是哈希值,不能填明文,
  • ☐ 踩坑实录:有回帮人处理,在 phpMyAdmin 里手滑把 user_pass 直接填了明文 newpass123,满以
  • ☐ 顺手确认角色没坏:如果登录后权限不对(比如看不到后台菜单),查一下用户元数据:
  • ☐ 临时进不去的应急法:要是连数据库都进不去,还有 FTP 改 functions.php 建临时管理员账号的招(登录后务必删掉那段代
  • ☐ 常见问题:改了密码还是登不进?多半是 cookie 或安全插件拦截。清浏览器 cookie、用无痕模式,或临时停用 Wo

关键命令速查

  • # 直接设新密码 wp user update 管理员用户名 --user_pass=新密码 # 或生成一个随机密码并打印出来 wp user reset-password 管理员
  • UPDATE wp_users SET user_pass = MD5('新密码') WHERE user_login = '管理员用户名';
  • SELECT * FROM wp_usermeta WHERE user_id = 1 AND meta_key = 'wp_capabilities';

相关延伸

更系统的排查思路,见 WordPress 分类归档

相关完整手册

系统化的排查与配置思路,建议顺手收藏这几篇完整手册: