如果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
作者
EnderKC
发布于
2025年02月12日
许可协议