不行,宝塔7.0+已弃用mysql存储凭证,应使用bt default或bt 5重置;需先cd /www/server/panel,再执行bt 5输入新密码,注意权限、服务状态、缓存、安全入口、防火墙及系统时间同步。

宝塔面板登录密码忘了,直接改数据库行不行?
不行。宝塔 7.0+ 版本已弃用 MySQL 存储用户凭证,bt default 和 bt 5 命令才是官方支持的重置路径,硬改 /www/server/panel/data/default.db 或尝试注入 SQLite 很可能让面板无法启动。
真实场景里,多数人是在 SSH 连上服务器后卡在「不知道命令怎么敲」或「执行完没反应」——其实就两步:进面板目录、运行内置命令。
-
cd /www/server/panel是必须的,漏掉这句,bt命令会报command not found - 执行
bt 5后会提示输入新密码,**输完直接回车确认,不要按 Ctrl+C 中断**,否则密码写入一半,面板可能拒绝所有登录 - 如果提示
Permission denied,说明当前不是 root 用户,先sudo su -切过去再操作
执行 bt 5 没反应或报错怎么办?
常见原因是宝塔服务未运行,或者面板主进程异常卡死。这时候不能只盯着密码,得先让 bt 命令能正常调起。
- 先检查面板状态:
bt status,返回running才代表基础服务在线;如果是stopped,先bt start - 若
bt status报command not found,大概率是 PATH 里没包含/www/server/panel/pyenv/bin,临时补上:export PATH=/www/server/panel/pyenv/bin:$PATH - 极少数情况(如面板升级中断),
bt脚本本身损坏,可手动下载修复:wget -O update.sh https://download.bt.cn/install/update.sh && bash update.sh
重置后还是登不进去?重点查这几个地方
密码没错,但浏览器仍提示「用户名或密码错误」,90% 是前端缓存或后端校验机制在作祟。
- 清掉浏览器里所有
bt.cn或服务器 IP 的 Cookie 和登录态,别只点「清除历史记录」,要专门进设置删站点数据 - 检查是否启用了「安全入口」:如果之前设过安全入口路径(比如
/abc123),新密码生效后仍需带路径访问,即https://你的IP:8888/abc123 - 防火墙可能拦截了 8888 端口:执行
firewall-cmd --list-ports(CentOS)或ufw status(Ubuntu),确认 8888 在放行列表里 - 如果用 Nginx 反代了面板,注意反代配置里不能加
proxy_set_header Authorization ""这类会吃掉认证头的指令
想批量重置或脚本化处理?别碰 bt 5 自动化
bt 5 是交互式命令,没有 --password 或 -p 参数,强行用 echo "newpass" | bt 5 会失败——它内部用的是 Python 的 getpass.getpass(),绕不开终端 TTY 检测。
真有自动化需求(比如 CI 环境部署后初始化),唯一可靠方式是用宝塔 API:
curl -s "http://127.0.0.1:8888/login" \ -d "username=admin" \ -d "password=oldpass" \ -d "new_password=newpass"
但注意:API 默认关闭,需先在 /www/server/panel/data/api.json 里把 "open":false 改成 true,且该文件权限必须是 600,否则面板启动时会自动关掉 API。
真正容易被忽略的点是:宝塔的密码哈希逻辑依赖服务器时间,如果系统时间偏差超过 5 分钟,即使密码正确,登录请求也会被拒绝——重置前先 ntpdate -s time.nist.gov 同步一次更稳妥。










