Appearance
故障排除
警告
这部分的内容适用于高级用户。
前言
本页包含对 Memos 实例进行故障排除的说明。
本文内容基于如下假设:
- 容器名称是
memos
。
- 数据库驱动是
sqlite
。
- 数据库文件是
/var/opt/memos/memos_prod.db
。
重要
/var/opt/memos/memos_prod.db
是一个容器 内 的绝对路径。只有在创建容器时提供了与默认值不同的 MEMOS_DATA
环境变量时,这个路径才会变化。
重新启用密码登录
如果你因单点登录 (SSO) 设置失败而将自己锁定在 Memos 实例之外,则可以按照以下步骤重新启用常规登录。
- 进入容器 shell:
bash
docker exec -it memos ash
- 安装 SQLite shell
bash
apk add --no-cache sqlite
- 在数据库上启用密码登录:
bash
sqlite3 /var/opt/memos/memos_prod.db -cmd '.mode csv' <<EOF
UPDATE system_setting
SET value = json_patch(value, '{"disallowPasswordLogin": false}')
WHERE name = 'GENERAL';
EOF
重要
这是一个单行命令,请一次性执行。
- 退出容器 shell:
bash
exit
- 重启容器:
bash
docker restart memos
重设管理员密码
- 进入容器 shell:
bash
docker exec -it memos ash
- 安装 SQLite shell
bash
apk add --no-cache sqlite
- 在数据库中重设密码:
这会将主用户密码更改为 secret
并取消用户归档。它还会显示用户名,以防您忘记。
bash
sqlite3 /var/opt/memos/memos_prod.db -cmd '.mode csv' <<EOF
UPDATE user
SET password_hash='\$2a\$12\$fWLqtEFiwr0oFwz3I9H6Uu/W7MvPCJGA9fLlTDV5eO2qsH8yUANku',
row_status = 'NORMAL'
WHERE id = 1;
SELECT user.username FROM user WHERE user.id = 1;
EOF
重要
这是一个单行命令,请一次性执行。
- 退出容器 shell:
bash
exit
- 重启容器:
bash
docker restart memos