我有一个 openfire 服务器,它是通过 RPM 安装在我的一台 Linux 服务器上的。该服务器非常旧,很快就会停用,所以我要将 openfire 移到一台新服务器上。我在一台新服务器上安装了相同版本的 openfire,现在当我尝试访问管理控制台时,它不允许我登录 :( 密码没问题,因为我使用的是以前用过的密码。
SELECT ofUser WHERE username='admin';
显示我的用户管理员和加密密码,我甚至尝试将其更改为纯文本密码并再次尝试登录,但没有帮助:(所以我恢复了我的更改,还有其他想法吗?
答案1
在您知道管理员密码的新 OpenFire 服务器上,使用 MySQL 执行 SELECT 查询并查看其哈希密码(我相信它是加密密码列,自从我设置 OpenFire 以来已经有一段时间了)。将整个哈希密码复制到剪贴板,然后翻转到旧 OpenFire 服务器的 MySQL DB 并执行:
UPDATE ofUser SET encryptedPassword='<paste in password hash here>' WHERE username='admin';
这样您就可以使用新 OpenFire 服务器上的密码访问旧 OpenFire 服务器。只有当 OpenFire 服务器未根据安装使用某些特定字符串对哈希进行加盐处理时,此功能才会起作用。
另外,我发现了这个: http://www.bowu.org/open-source/how-to-recover-openfire-admin-password.html
或者,我也在 Ignite 论坛上发现了这个: http://community.igniterealtime.org/thread/46458
两者基本上只是建议您再次告诉 OpenFire 这是初始安装,它会让您设置管理员密码(只要您选择所有其他设置相同,就应该没问题)。我肯定会听从第二个人的建议,先备份数据库,以防安装向导清除您的数据库或发生其他事情。