之前让大表哥安装的piwigo相册,吃灰好久了,连密码都忘记了。但是又没有配置邮件服务,密码重置功能就无法使用。不过,我们可以直接通过修改数据库来重置密码。以下是deepseek给的初稿,我实际使用过程中有一堆的问题,手工修改确认可用,做个记载。

📋 数据库密码重置步骤

1. 进入数据库容器

首先,你需要连接到运行中的 MariaDB 容器:

docker exec -it piwigo-db mariadb -u root -p

系统会提示你输入密码。如果你不记得数据库的 root 密码,可以按以下方式查找:

2. 查找数据库密码(如果忘记)

检查 Piwigo 的配置文件或 docker-compose 环境变量:

# 查看 piwigo-web 容器的环境变量
docker inspect piwigo-web | grep -A 10 -B 10 MYSQL
# 或者查看 docker-compose.yml 文件
cat docker-compose.yml | grep -A 10 -B 10 MYSQL

3. 选择 Piwigo 数据库并查看用户

连接数据库后,执行以下 SQL 命令:

-- 选择 Piwigo 数据库(通常是 piwigo)
USE piwigo;

-- 查看现有用户
SELECT id, username FROM piwigo_users;

这会列出所有用户,找到你想要重置密码的管理员账户(通常是 admin)。

4. 重置密码

现在为指定用户设置新密码。Piwigo 使用 MD5 哈希存储密码:

-- 将密码重置为 "newpassword123"(请替换为你的新密码)
UPDATE piwigo_users 
SET password = MD5('newpassword123') 
WHERE username = 'admin';

-- 确认更新成功
SELECT username, password FROM piwigo_users WHERE username = 'admin';

5. 退出数据库

EXIT;

🔧 替代方案:使用更安全的密码哈希

现代 Piwigo 版本可能使用更安全的密码哈希方式。如果上述方法不工作,可以尝试:

-- 方法二:使用 PHP password_hash 兼容的哈希
UPDATE piwigo_users 
SET password = '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi' -- 对应密码 "password"
WHERE username = 'admin';

或者让 Piwigo 生成一个新密码:

-- 方法三:设置一个临时密码,然后通过登录后修改
UPDATE piwigo_users 
SET password = MD5(CONCAT('temp', NOW())) 
WHERE username = 'admin';

🗂️ 完整的操作流程表

步骤命令/操作说明
1. 连接数据库docker exec -it piwigo-db mariadb -u root -p进入数据库容器
2. 选择数据库USE piwigo;选择 Piwigo 数据库
3. 查看用户SELECT id, username FROM piwigo_users;确认管理员用户名
4. 重置密码UPDATE piwigo_users SET password = MD5('你的新密码') WHERE username = 'admin';设置新密码
5. 验证SELECT username FROM piwigo_users WHERE password = MD5('你的新密码');确认密码已更新
6. 退出EXIT退出数据库

💡 重要提醒

  1. 密码安全:登录后请立即在 Piwigo 管理后台修改密码
  2. 邮件配置:建议后续配置 SMTP 邮件设置,以便未来可以使用密码重置功能
  3. 备份优先:在进行数据库修改前,建议备份数据库:

    docker exec piwigo-db mysqldump -u root -p piwigo > piwigo_backup_$(date +%Y%m%d).sql

完成这些步骤后,你就可以使用新密码 newpassword123(或你设置的其他密码)登录 Piwigo 管理后台了。

标签: Deepseek, 数据库

评论已关闭