忘记管理员密码进不了后台?本指南按场景给出 4 种解决办法,从简单到兜底排列。
重要提示:网上流传的老教程会说"把
index.php里的 DEBUG 改成 3 就能免登录进后台改密码"。XIUNOX 已移除这个模式,DEBUG 只支持0(线上)、1(调试)、2(插件开发)三个值,设成 3 会直接显示配置错误页面,请不要再尝试。
方式一:邮箱找回(推荐,最简单)
前提:站点邮件功能正常,且管理员账号绑定过有效邮箱。
打开登录页,点击「忘记密码」;
输入管理员的用户名或邮箱,收取验证码;
用验证码设置新密码,完成。
方式二:已登录状态下修改
前提:你还能登录(比如浏览器里保持着后台登录状态),只是想换密码。
后台改:后台 → 用户 → 用户列表 → 搜索自己的账号 → 编辑 → 修改密码;
个人中心改:头像 → 个人中心 → 密码修改,输入旧密码 + 新密码。
方式三:命令行重置工具(忘记密码时首选)
XIUNOX 自带一个密码重置脚本 tool/reset_password.php,只能在服务器命令行里运行,浏览器无法访问(无后门风险,无需用完删除)。它会:
把指定账号的密码改为你指定的新密码;
同时使该账号在其他设备上的登录状态和全部 API 令牌失效(安全设计,属正常现象)。
步骤 1:打开命令行窗口
宝塔面板用户(最常见):登录宝塔 → 左侧菜单「终端」→ 界面里出现命令提示符即可。
SSH 用户:用 PuTTY / Termius / 系统终端连接服务器。
Windows 本地/phpstudy 用户:打开 cmd(Win+R 输入 cmd 回车)。
步骤 2:进入网站目录并执行
把下面命令里的路径换成你的实际网站目录(宝塔默认类似 /www/wwwroot/你的域名),用户名换成管理员用户名:
cd /www/wwwroot/你的网站目录
php tool/reset_password.php admin
回车后按提示输入两次新密码(至少 6 位),看到「密码重置成功!」即可去登录。
也可以一条命令直接完成(密码明文出现在命令里,介意的话用上面的交互模式):
php tool/reset_password.php admin 你的新密码
小技巧:
第一个参数也可以填用户邮箱或 uid(管理员通常是
1):php tool/reset_password.php 1 你的新密码Windows 用户把
php换成完整路径,例如"D:\phpstudy_pro\Extensions\php\php8.2.9nts\php.exe" tool/reset_password.php admin(路径以你的实际 PHP 版本为准)
步骤 3:登录并再改一次密码
用新密码登录后台后,建议到「个人中心 → 密码修改」再改成自己的专属密码。
如果站点启用了 Redis/文件缓存且新密码登录仍报错,到后台「其他 → 缓存」清空一次缓存即可。
方式四:phpMyAdmin 直接改库(兜底)
前提:命令行完全不可用(部分虚拟主机),但面板里有 phpMyAdmin / 数据库管理。
第 1 步:打开 phpMyAdmin,找到并进入站点数据库,左侧点击用户表(默认名 bbs_user,如果你安装时改过表前缀,就是 你的前缀_user)。
第 2 步:点顶部「SQL」标签,粘贴以下语句(把 bbs_ 换成你的表前缀,admin 换成管理员用户名),点执行:
UPDATE bbs_user
SET password_hash = '$2y$12$1qxHFaMqPBgZ9WE6BNE1N.gHoQZi9gZfWqs0U6L8op5KRS9i/t.D6',
password = '',
salt = '',
password_ver = password_ver + 1
WHERE username = 'admin';
执行成功后,管理员密码被临时改为 admin123456。
第 3 步(必做):立即用 admin / admin123456 登录,然后马上到「个人中心 → 密码修改」改成自己的强密码。这条 SQL 里的密码是公开文档,任何人都能看到,绝不能长期保留。
说明:
password_ver + 1会让该账号所有旧的登录令牌失效,其他设备需要重新登录,属正常现象。
常见问题
Q:脚本提示「找不到用户」? 第一个参数必须是用户的用户名(不是昵称)、邮箱或 uid。不确定用户名就先在 phpMyAdmin 里查 bbs_user 表(gid=1 的是超级管理员)。
Q:脚本提示「数据库连接失败」? 说明当前目录不对,脚本靠读取网站目录下的 conf/conf.php 连库。请先 cd 到网站根目录(能看到 index.php 的那一层)再执行。
Q:重置后还是登录不了?
确认输入的是用户名 + 新密码(不是昵称);
后台「其他 → 缓存」清一次缓存;
检查账号是否被锁定/封禁(phpMyAdmin 查
bbs_user表的ban_type字段,超级管理员应为 0)。
Q:DEBUG=3 的报错页面是什么? 那是 XIUNOX 的合法值校验:DEBUG 只允许 0/1/2。老教程的免登录通道已封死,请改用本文方式三或方式四。