本文仅限于针对无任何方式登录后台的解决办法
方法来源于官方文档:https://docs.halo.run/2.20/user-guide/faq/
如果系统没有任何一个能够正常登录控制台且具有用户管理权限的管理员账号,则用户需要通过更新数据库记录的方式重置指定用户的密码。
参考 SQL 语句:
通过以下 SQL 语句,可以将 admin 用户的密码重置为 password,密码重置后请尽快修改为更加安全的密码。
PostgreSQL 数据库
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';
MySQL 数据库
UPDATE
extensions
SET
data = JSON_SET(
CONVERT(data USING utf8mb4),
'$.spec.password',
'{bcrypt}$2a$10$7tBEL1sNQSr/uWtLZHLmCeA9IGx0I9/Jz//3Uwo/anIm9xdxv.xrO'
)
WHERE
name LIKE '/registry/users/admin';