重置Apollo Portal的管理员密码

现有的一套apollo应用因长时间未移交,Apollo Portal的管理员帐号的密码需要重置。以下是如何通过MySQL数据库重置Apollo Portal的管理员密码的解决方案,并解决因权限记录缺失导致的登录问题。

一、先决条件

在我们开始之前,请确保您拥有如下内容:

1.在进行任何数据库操作之前,请确保备份相关数据,以防万一操作失误导致数据丢失。

2.如果Apollo Portal使用了外部的身份验证服务,则可能需要在相应的服务中更新密码或权限。

3.确保MySQL服务器的安全,避免未授权访问。

二、解决方案

1.登录MySQL数据库

首先,你需要使用具有足够权限的MySQL用户(如root用户)登录到MySQL服务器。

[root@yunweixia.com ~]# mysql -uroot -p

2.选择Apollo Portal数据库

查看所有数据库,并找到Apollo Portal使用的数据库(通常是ApolloPortalDB)。

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| ApolloConfigDB     |
| ApolloPortalDB     |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

MySQL [(none)]> use ApolloPortalDB;
Database changed

3.查看并修改用户密码

(1)显示所有表

MySQL [ApolloPortalDB]> show tables;
+--------------------------+
| Tables_in_ApolloPortalDB |
+--------------------------+
| App                      |
| AppNamespace             |
| Authorities              |
| Consumer                 |
| ConsumerAudit            |
| ConsumerRole             |
| ConsumerToken            |
| Favorite                 |
| Permission               |
| Role                     |
| RolePermission           |
| ServerConfig             |
| UserRole                 |
| Users                    |
| Users_bak_20240319       |
+--------------------------+
15 rows in set (0.00 sec)

(2)查看Users表内容

确认管理员账号(如apollo)的详细信息,特别是密码字段。

MySQL [ApolloPortalDB]> select * from Users;
+----+----------+--------------------------------------------------------------+-----------------------------------+---------+
| Id | Username | Password                                                     | Email                             | Enabled |
+----+----------+--------------------------------------------------------------+-----------------------------------+---------+
|  1 | apollo   | $2a$10$7r20uS.BQ9uBpf3Baj3uQOZvMVvB1RN3PYoKE942wsz2.WAOuiiwXS | apollo@acme.com                   |       1 |
+----+----------+--------------------------------------------------------------+-----------------------------------+---------+
1 rows in set (0.00 sec)

(2)修改apollo密码

我们需要从GitHub的`https://github.com/apolloconfig/apollo/blob/master/scripts/sql/src/apolloportaldb.sql`文件获取数据库初始化的用户名和密码。如下:

INSERT INTO `Users` (`Username`, `Password`, `UserDisplayName`, `Email`, `Enabled`)
VALUES
	('apollo', '$2a$10$7r20uS.BQ9uBpf3Baj3uQOZvMVvB1RN3PYoKE94gtz2.WAOuiiwXS', 'apollo', 'apollo@acme.com', 1);

INSERT INTO `Authorities` (`Username`, `Authority`) VALUES ('apollo', 'ROLE_user');

通过以下命令重置apollo用户的秘钥,重置完毕的帐号密码为:apollo/admin:

MySQL [ApolloPortalDB]> UPDATE Users SET password = '$2a$10$7r20uS.BQ9uBpf3Baj3uQOZvMVvB1RN3PYoKE94gtz2.WAOuiiwXS' WHERE username = 'apollo';

4.检查和修复权限问题

如果修改密码后仍然无法登录,可能是因为权限记录缺失。检查Authorities表,确认管理员账号的权限记录是否存在。

(1)查看Authorities表

MySQL [ApolloPortalDB]> SELECT * FROM Authorities;
+----+----------+-----------+
| Id | Username | Authority |
+----+----------+-----------+
| 13 | test     | ROLE_user |
+----+----------+-----------+
1 rows in set (0.00 sec)

(2)添加缺失的权限记录

如果缺少如(‘apollo’, ‘ROLE_user’)的记录,你需要手动添加它。

MySQL [ApolloPortalDB]> INSERT INTO Authorities (Username, Authority) VALUES ('apollo', 'ROLE_user');

注意:如果Authorities表中有其他与角色和权限相关的字段(如自增ID),确保在插入时包含这些字段。

三、总结

完成上述步骤后,尝试使用新的密码登录Apollo Portal。如果一切正常,你应该能够成功登录。

原创文章,作者:运维侠,如若转载,请注明出处:https://www.yunweixia.com/solutions/solution-for-apollo-portal-admin-password-reset.html

(0)
运维侠的头像运维侠共建用户
上一篇 2025年6月19日 18:11
下一篇 2025年6月21日 18:11

相关推荐

发表回复

登录后才能评论