Piwigo 没有配置邮件发送接口,如何通过修改数据库来重新设置密码?
之前让大表哥安装的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 MYSQL3. 选择 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 | 退出数据库 |
💡 重要提醒
- 密码安全:登录后请立即在 Piwigo 管理后台修改密码
- 邮件配置:建议后续配置 SMTP 邮件设置,以便未来可以使用密码重置功能
备份优先:在进行数据库修改前,建议备份数据库:
docker exec piwigo-db mysqldump -u root -p piwigo > piwigo_backup_$(date +%Y%m%d).sql
完成这些步骤后,你就可以使用新密码 newpassword123(或你设置的其他密码)登录 Piwigo 管理后台了。
评论已关闭