Lazy loaded image
技术分享
🔦技术分享 | 记一次找回OneAPI管理员密码
字数 1377阅读时长 4 分钟
2025-6-3
2025-6-3
type
status
date
slug
summary
tags
category
icon
password
URL

啰嗦一下

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

直接看解决办法

🔍 第一步:列出正在运行的容器

到这里是为了确认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(推荐新手)

      1. 在 CMD 中输入以下命令启动 Python 交互式环境:
        1. 你会看到类似这样的提示符:
      1. 输入以下代码(一行一行地输入,每行后回车):
        1. 最后会输出一个 bcrypt 加密后的哈希值,例如:
          notion image

          ✅ 方法二:创建 .py 文件运行(适合重复使用)

          1. 打开记事本或任何文本编辑器。
          1. 复制粘贴以下内容到文件中:
            1. 保存为:generate_hash.py
            1. 在保存目录打开 CMD 或 PowerShell,运行:
              1. 得到输出的 bcrypt 哈希值。

              ✅ 第三步:将生成的哈希值更新到数据库中

              假设你得到的哈希值是:
              那么你就可以在 MySQL 中执行如下语句:
              这样就完成了密码的修改!
              如果你电脑上没有装python,可以直接使用以下代码修改密码(如果你的用户名是admin),不用自己生成了,这样你的密码就改为了:newpassword自己登录后,再去后台改为自己的密码。
               

              🎯 总结

              步骤
              操作
              1
              安装 Python 和 bcrypt 库
              2
              使用 Python 脚本生成 bcrypt 哈希
              3
              将哈希值写入数据库


              7️⃣ 退出 MySQL 和容器


              🧪 第二步:用新密码登录 OneAPI

              现在你可以访问你的 OneAPI 网站(例如 http://你的服务器IP:3001)
              使用管理员账号:
              • 用户名admin
              • 密码newpassword

              ✅ 成功!

              上一篇
              学习笔记 | UML图
              下一篇
              学习笔记 | 文生图提示词

              评论
              Loading...