apollo配置中心从数据库中查询所有的配置及项目
需求背景:如果需要从Apollo查询某个配置项做批量的更新替换,如果一个一个找不合适且容易遗漏,需要从底层数据库表中模糊查询来实现。
1.查看apollo的目录位置: ps -ef | grep "apollo"
/usr/local/apollo/apollo-portal/apollo-portal.jar /usr/local/apollo/apollo-configservice/apollo-configservice.jar ## 配置文件 /usr/local/apollo/apollo-adminservice/apollo-adminservice.jar ## admin后台
2.找到mysql的配置文件,找到用户名和密码。 /usr/local/apollo/apollo-configservice
3.mysql 进入mysql客户端,如果有用户名和密码,则输入用户名和密码。mysql -uroot -p (密码为空) config/目录下面没有配置,代表的是默认链接的本地的mysql root账号,密码为空。 输入: mysql 直接进入mysql客户端。 !ps 返回上一次执行命令的命令。
mysql> show databases; -------------------- | Database | -------------------- | information_schema | | ApolloConfigDB | | ApolloPortalDB | | mysql | | performance_schema | | test | -------------------- 6 rows in set (0.00 sec)
3.1 根据关键字模糊匹配 select `NamespaceId`, `Key`, `Value`, `Comment` from ApolloConfigDB.Item where `Value` like '%keyword%';
3.2 根据 NamespaceId查询项目名称 ## NamespaceId = 19 select * from ApolloConfigDB.Namespace where id in (19);
----- ---------- ------------- --------------- ----------- ---------------------- ------------------------ --------------------------- --------------------- | Id | AppId | ClusterName | NamespaceName | IsDeleted | DataChange_CreatedBy | DataChange_CreatedTime | DataChange_LastModifiedBy | DataChange_LastTime | ----- ---------- ------------- --------------- ----------- ---------------------- ------------------------ --------------------------- --------------------- | 19 | 1010 | default | application | | apollo | 2018-10-22 14:14:36 | apollo | 2018-10-22 14:14:36 | ----- ---------- ------------- --------------- ----------- ---------------------- ------------------------ --------------------------- --------------------- 1 row in set (0.00 sec)