灯火烛天
灯火烛天
发布于 2025-07-04 / 3 阅读

忘记了自己搭建的兰空图床账户密码,如何通过数据库修改

注:本文基于开源lsky pro V2版本,对于后续付费版本及早期版本可能不具有参考价值。

根据GIthub Issues评论,我们要做如下的事情:

  1. 注册新账号,然后进入数据库找到 users 数据表,将管理员账号的 password 替换为新账号的 password

  2. 如果系统关闭了注册功能,需要进入 configs 数据表,找到 nameis_enable_registration 的那条数据,将 value 改为数字 1,然后登录服务器终端,进入站点根目录执行命令 php artisan cache:clear,然后重复上述第一步的步骤。

对于使用面板直接通过Docker搭建的用户,这样的描述也许仍然不够清晰。恰好我就遇到了忘记密码的麻烦事,在网上也没有找到详细的指导(毕竟其实很简单),所以把修改的过程发出来。

首先,你需要一个链接并管理你数据库的软件。在这里,我选择直接在服务端部署pgadmin4来连接我的PostgreSQL数据库。

在安装界面,别忘了修改并妥善保存管理员邮箱及密码,稍后需要他们登入后台。

chrome_mmJphpoXbd.png

对了,如果安装了防火墙,也别忘了开放端口,默认为8080。

接下来,我们连接到自己的数据库。

chrome_9V2W756i9I.png

chrome_hI8rL37SPm.png

“数据库”这里填你数据库的名称就好啦,然后点击connect,一切正常的话,你会看到如下界面。

chrome_qf3yTsw8zc.png

聚焦到查询板块可以输入文字的区域,让我们首先开放注册;如果你本来就开放,可以跳过这个板块。

UPDATE configs
SET value = 1
WHERE name = 'is_enable_registration';

输入完成后,点击工具栏上的 “执行 / 刷新” 按钮(其图标为闪电形状),或者直接按下F5键来执行这条 SQL 语句。

为了确认数据是否已成功修改,可以执行下面的查询语句:

SELECT * FROM configs WHERE name = 'is_enable_registration';

执行该查询后,查看返回的结果,确认value字段的值是否为1

chrome_zOboHLS7no.png

接下来,让我们刷新缓存。

以1Panel面板为例,让我们进入lsky容器的终端执行命令。

chrome_lVMB6PTvdc.png

执行php artisan cache:clear ,若成功则应提示如下。

chrome_Vl47iWfaIm.png

刷新你的图床/login页面,应该出现注册选项了,注册一个新账号。

接下来,假设你的旧管理员账户id为1,新管理员账户id为2——此处的id是为了定位并修改其密码,使用用户名也无妨。

首先执行SELECT * FROM users 获取所有账户的信息,从而确定你需要将哪个账户的密码替换。

以上述假设为例,执行如下代码:

UPDATE users
SET password = (SELECT password FROM users WHERE id = 2)
WHERE id = 1;

运行以下查询确认修改:

SELECT id, password FROM users WHERE id IN (1, 2);

如果发现两个password字段相同,则可以使用新注册账号的密码登录原来的管理员账号了。


评论