type
status
date
slug
summary
tags
category
icon
password
URL
啰嗦一下
昨天手残,清理浏览器缓存时,没注意到勾选了清除所有保存的密码,一夜之间,所有浏览器接管的密码都没了……
更要命的是我有一个非常“好”的习惯——不同的网站使用不同的复杂密码。
所以完全依赖浏览器为我保管密码。
这还不是最要命的……
我所有AI项目KEY都使用的是我自己通过Docker Composer搭建的
OneAPI
来提供,而我现在也无法登录OneAPI
后台了。到
OneAPI
在github
的issue
中到是有个大佬提供了一个解决方法,于是赶紧去尝试。
结果,因为我不知道哪个脑子抽筋,自己没有开放注册新用户……

直接看解决办法
🔍 第一步:列出正在运行的容器
到这里是为了确认OneAPI使用的数据库名称是
mysql
(如果你确定无误,可以直接从第三步开始。)你可以先查看当前运行中的容器,找到 OneAPI 所在的容器名或 ID:输出示例:
在上面这个例子中,容器名是
oneapi
或者可以用 123456789abc
这个 ID。🐚 第二步:进入容器的 shell
根据你的镜像系统选择合适的 shell:
- 如果是基于 Ubuntu/Debian 的镜像:
- 如果是 Alpine 等轻量级镜像:
💡 如果不知道容器名怎么办?
你可以列出所有容器(包括已停止的):
或者根据镜像名查找容器:
输出结果如下
第三步:进入数据库修改密码
1️⃣ 进入 MySQL 容器内部
你会进入 MySQL 容器的命令行。
2️⃣ 登录 MySQL
输入以下命令登录 MySQL(默认用户名是 root):
然后输入你的 MySQL 密码(如果你设置了)。
如果你没有设置过密码,可以直接按回车跳过密码验证。
3️⃣ 查看有哪些数据库
就能看到一个
oneapi
的数据库。4️⃣ 使用 OneAPI 数据库
回车后会看到如下提示,表示你已经进入了 OneAPI 所使用的数据库:
5️⃣ 查找管理员用户
输出示例:
这个
password
是用 bcrypt 加密的,而不是 MD5。- 看到以
$2a$
开头的密码,表示这是使用 bcrypt 算法加密的密码。
6️⃣ 修改管理员密码为 newpassword
OneAPI的密码目前使用的是bcrypt 哈希值,需要使用 Python 来运行这些代码来生成。下面是完整的操作步骤:
✅ 第一步:确认你已经安装了 Python
在 CMD 中运行以下命令来检查是否已安装 Python:
如果看到类似
Python 3.12.x
的输出,说明 Python 已安装。如果没有安装,请先从这里下载并安装:
👉 https://www.python.org/downloads/
🐍 第二步:运行 Python 脚本生成 bcrypt 哈希值
你可以选择以下任意一种方式执行脚本:
✅ 方法一:使用 Python Shell(推荐新手)
- 在 CMD 中输入以下命令启动 Python 交互式环境:
你会看到类似这样的提示符:
- 输入以下代码(一行一行地输入,每行后回车):
- 最后会输出一个 bcrypt 加密后的哈希值,例如:

✅ 方法二:创建 .py
文件运行(适合重复使用)
- 打开记事本或任何文本编辑器。
- 复制粘贴以下内容到文件中:
- 保存为:
generate_hash.py
- 在保存目录打开 CMD 或 PowerShell,运行:
- 得到输出的 bcrypt 哈希值。
✅ 第三步:将生成的哈希值更新到数据库中
假设你得到的哈希值是:
那么你就可以在 MySQL 中执行如下语句:
这样就完成了密码的修改!
如果你电脑上没有装python,可以直接使用以下代码修改密码(如果你的用户名是admin),不用自己生成了,这样你的密码就改为了:
newpassword
,自己登录后,再去后台改为自己的密码。🎯 总结
步骤 | 操作 |
1 | 安装 Python 和 bcrypt 库 |
2 | 使用 Python 脚本生成 bcrypt 哈希 |
3 | 将哈希值写入数据库 |
7️⃣ 退出 MySQL 和容器
🧪 第二步:用新密码登录 OneAPI
现在你可以访问你的 OneAPI 网站(例如 http://你的服务器IP:3001)
使用管理员账号:
- 用户名:
admin
- 密码:
newpassword
✅ 成功!
- 作者:Miro
- 链接:http://miro.cx/article/tech-OneAPI
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。