如果Halo忘记密码
前言:
前一段时间把所有的博客文章都转移到halo了,之前的博客都用的静态网页,所以也不用什么密码管理,如果非要登录,也就是GitHub授权一下就行了。但是现在切换到有后端的博客了,就需要做做密码管理。
这里先贴一个官方的连接:
https://docs.halo.run/user-guide/faq/#%E5%BF%98%E8%AE%B0%E5%AF%86%E7%A0%81%E6%80%8E%E4%B9%88%E5%8A%9E
前面说到的几种情况就先不提了,现在来说说最严重的情况:系统中只有一个用户(管理员),并且不能正常登录。
1. 你要知道当前用的什么数据库
一般来说,如果你是docker安装的话,在目录里面会有一个docker-compose.yml
文件,打开它,找到下面这一段:
halodb:
image: postgres:15.4
restart: on-failure:3
networks:
halo_network:
volumes:
- ./db:/var/lib/postgresql/data
healthcheck:
test: [ "CMD", "pg_isready" ]
interval: 10s
timeout: 5s
retries: 5
environment:
- POSTGRES_PASSWORD=***********
- POSTGRES_USER=halo
- POSTGRES_DB=halo
- PGUSER=halo
这里可以看到,我的数据库是postgres
2. 获取数据库容器的id
命令:docker ps -a
获取到id之后输入以下命令:
docker exec -it <这里输入你的容器id> psql -U halo -d halo
3. 修改密码
根据官网的提示,输入下面的命令
UPDATE
extensions
SET
data = convert_to(
jsonb_set(
convert_from(data, 'UTF-8') :: jsonb,
'{spec,password}',
'"{bcrypt}$2a$10$7tBEL1sNQSr/uWtLZHLmCeA9IGx0I9/Jz//3Uwo/anIm9xdxv.xrO"'
) :: text,
'UTF-8'
)
WHERE
name LIKE '/registry/users/admin';
注意:这个指令修改的数据库中的字段是admin字段的密码,如果你之前改过其他的用户名,请修改最后一行
当你看到
的时候,就代表你成功了,快去登陆后台发表文章吧!
如果Halo忘记密码
http://localhost:8090//archives/obaEdaBO