目录

目录

memos 密码修改即sqlite3的简单操作

目录
  1. 先关闭服务docker compose down
  2. 找到数据库文件。由于我的docker-compose.yml中有 - ./data:/var/opt/memos 。所以我的数据库文件就是data/memos_prod.db
  3. 安装工具包sudo apt install -y sqlite3
  4. 事先了解到存储用户信息的表名为user,因此先查看表的结构sudo sqlite3 ./memos_prod.db ".schema user"。输出如下。
   CREATE TABLE user (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  created_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')),
  updated_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')),
  row_status TEXT NOT NULL CHECK (row_status IN ('NORMAL', 'ARCHIVED')) DEFAULT 'NORMAL',
  username TEXT NOT NULL UNIQUE,
  role TEXT NOT NULL CHECK (role IN ('HOST', 'ADMIN', 'USER')) DEFAULT 'USER',
  email TEXT NOT NULL DEFAULT '',
  nickname TEXT NOT NULL DEFAULT '',
  password_hash TEXT NOT NULL,
  avatar_url TEXT NOT NULL DEFAULT '',
  description TEXT NOT NULL DEFAULT ''
);
CREATE INDEX idx_user_username ON user (username);
  1. 查看表中的内容。 sudo sqlite3 ./memos_prod.db "SELECT * FROM user;"

1|1752937255|1757856536|NORMAL|silas|HOST|||$2a$10$Nz9gRAHDKoKabcdefwOORukZHiwm3lNyCg1lU5nSLGJAKaHwOe||
   
  1. 这里以id为键修改密码。如果你想修改其他的用户记得更改为对应的id值。其中后面的这一串就是字符穿secret的哈希值。因此执行完以后你的密码就为secretsudo sqlite3 ./memos_prod.db "UPDATE user SET password_hash = '\$2a\$14\$ajq8Q7fbtFRQvXpdCq7Jcuy.Rx1h/L4J60Otx.gyNLbAYctGMJ9tK' WHERE id = 1;"
  2. 启动服务使用该密码既可以登录进入系统。记得修改为你喜欢的强密码类型。
  3. 此操作也可以适用于其他sqlite3类型的数据库项目。