zoukankan      html  css  js  c++  java
  • 饮冰三年-人工智能-Python-56-Apollo之03安装

    三、安装

    上一节:饮冰三年-人工智能-Python-55-Apollo之02简介

    安装环境

    笔者使用的是阿里云的服务器具体信息如下:
    Linux version 4.18.0-147.5.1.el8_1.x86_64
    CentOS Linux release 8.1.1911 (Core)
    版本要求:
    a: Java
    Apollo服务端:1.8+
    Apollo客户端:1.7+
    b: MySQL
    版本要求:5.6.5+

    Apollo的表结构对timestamp使用了多个default声明,所以需要5.6.5以上版本。

    文件目录

    文件名

    作用

    地址

    InstallationPackage

    用于存放所需的下载文件

    /home/work/InstallationPackage

    local

    文件的安装路径

    /usr/local/

    3.1 安装java

    1、下载  
    由于考虑到每个场景下使用的jdk版本不同,这边就不提供下载链接。你可以按照自己所需的版本要求,或下载方式获取安装包。我有时候也会采取从官网下载然后上传到阿里云服务器中

    2、解压  
    tar -zxvf  jdk-8u261-linux-x64.tar.gz

    3.移动到 usr/local 文件夹,并修改文件名,防止一些特殊符号带来的隐患
    mv mv jdk1.8.0_261 jdk /usr/local/
    cd /usr/local/
    mv jdk1.8.0_261 jdk 
    4:配置环境变量之JDK
    vim /etc/profile
    添加如下内容:JAVA_HOME根据实际目录来

    export JAVA_HOME=/usr/local/jdk
    export CLASSPATH=$JAVA_HOME/lib/
    export PATH=$PATH:$JAVA_HOME/bin
    export PATH JAVA_HOME CLASSPATH

    5:执行命令重启配置文件
    source /etc/profile
    6:检验Java是否安装成功
    java -version

    3.2 安装MySQL

    1、下载  
    由于考虑到每个场景下使用的jdk版本不同,这边就不提供下载链接。
    2:解压:

    tar xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

    3:解压完成后,可以看到当前目录下多了一个解压文件,移动该文件到/usr/local/下,并将文件夹名称修改为mysql。

    mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/
    cd  /usr/local/
    mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql 
    4:在/usr/local/mysql目录下创建data目录
    mkdir /usr/local/mysql/data

    5:添加mysql用户,并更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限
    useradd mysql
    chown -R mysql:mysql /usr/local/mysql
    chmod -R 755 /usr/local/mysql

    6:编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)  
    cd /usr/local/mysql/bin 
    ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

    7:编辑配置文件my.cnf,添加配置如下

    [mysqld]
    datadir=/usr/local/mysql/data
    port=3306
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    symbolic-links=0
    max_connections=400
    innodb_file_per_table=1
    lower_case_table_names=1

    8:添加软连接,并重启mysql服务
    ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
    ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
    service mysql restart   
    ps:如果重启服务失败

    请检查mysql的端口是否被占用,kill后再次重试

    9:登录mysql,修改密码

    mysql -u root -p
    Enter password:注意这里的密码就是步骤6中的临时密码
    mysql>set password for root@localhost = password('yourpass');

    10:开发远程连接

    连上数据库
    use mysql
    设置用户
    update user set host='%' where user='root';
    刷新
    flush privileges;

    11:设置开机自启动(视情况而定,建议设置)

    将启动文件拷贝到init.d下,并命名为mysqld
    cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld
    分配可执行权限
    chmod +x /etc/init.d/mysqld
    添加服务
    chkconfig --add mysqld
    显示服务
    chkconfig --list
    ps:如果使用阿里云服务器,需要注意开放端口

    连接上MySQL后,可以通过如下命令检查:
    SHOW VARIABLES WHERE Variable_name = 'version';

      

    3.3 安装 QuickStart

    可参考:https://github.com/ctripcorp/apollo/wiki/Quick-Start

    1、下载  
    同样,下载过程以实际情况而定。
    2、解压  
    同样的解压到 /usr/local 路径命名为apollo,这里不再赘述。

    3 创建ApolloPortalDB
    通过各种MySQL客户端导入sql/apolloportaldb.sql即可。

    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
     
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
     
    # Create Database
    # ------------------------------------------------------------
    CREATE DATABASE IF NOT EXISTS ApolloPortalDB DEFAULT CHARACTER SET = utf8mb4;
     
    Use ApolloPortalDB;
     
    # Dump of table app
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `App`;
     
    CREATE TABLE `App` (
    `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
    `AppId` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'AppID',
    `Name` varchar(500) NOT NULL DEFAULT 'default' COMMENT '应用名',
    `OrgId` varchar(32) NOT NULL DEFAULT 'default' COMMENT '部门Id',
    `OrgName` varchar(64) NOT NULL DEFAULT 'default' COMMENT '部门名字',
    `OwnerName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerName',
    `OwnerEmail` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerEmail',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `AppId` (`AppId`(191)),
    KEY `DataChange_LastTime` (`DataChange_LastTime`),
    KEY `IX_Name` (`Name`(191))
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用表';
     
     
     
    # Dump of table appnamespace
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `AppNamespace`;
     
    CREATE TABLE `AppNamespace` (
    `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
    `Name` varchar(32) NOT NULL DEFAULT '' COMMENT 'namespace名字,注意,需要全局唯一',
    `AppId` varchar(32) NOT NULL DEFAULT '' COMMENT 'app id',
    `Format` varchar(32) NOT NULL DEFAULT 'properties' COMMENT 'namespace的format类型',
    `IsPublic` bit(1) NOT NULL DEFAULT b'0' COMMENT 'namespace是否为公共',
    `Comment` varchar(64) NOT NULL DEFAULT '' COMMENT '注释',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT '' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `IX_AppId` (`AppId`),
    KEY `Name_AppId` (`Name`,`AppId`),
    KEY `DataChange_LastTime` (`DataChange_LastTime`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用namespace定义';
     
     
     
    # Dump of table consumer
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `Consumer`;
     
    CREATE TABLE `Consumer` (
    `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
    `AppId` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'AppID',
    `Name` varchar(500) NOT NULL DEFAULT 'default' COMMENT '应用名',
    `OrgId` varchar(32) NOT NULL DEFAULT 'default' COMMENT '部门Id',
    `OrgName` varchar(64) NOT NULL DEFAULT 'default' COMMENT '部门名字',
    `OwnerName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerName',
    `OwnerEmail` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerEmail',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `AppId` (`AppId`(191)),
    KEY `DataChange_LastTime` (`DataChange_LastTime`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='开放API消费者';
     
     
     
    # Dump of table consumeraudit
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `ConsumerAudit`;
     
    CREATE TABLE `ConsumerAudit` (
    `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
    `ConsumerId` int(11) unsigned DEFAULT NULL COMMENT 'Consumer Id',
    `Uri` varchar(1024) NOT NULL DEFAULT '' COMMENT '访问的Uri',
    `Method` varchar(16) NOT NULL DEFAULT '' COMMENT '访问的Method',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `IX_DataChange_LastTime` (`DataChange_LastTime`),
    KEY `IX_ConsumerId` (`ConsumerId`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='consumer审计表';
     
     
     
    # Dump of table consumerrole
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `ConsumerRole`;
     
    CREATE TABLE `ConsumerRole` (
    `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
    `ConsumerId` int(11) unsigned DEFAULT NULL COMMENT 'Consumer Id',
    `RoleId` int(10) unsigned DEFAULT NULL COMMENT 'Role Id',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) DEFAULT '' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `IX_DataChange_LastTime` (`DataChange_LastTime`),
    KEY `IX_RoleId` (`RoleId`),
    KEY `IX_ConsumerId_RoleId` (`ConsumerId`,`RoleId`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='consumer和role的绑定表';
     
     
     
    # Dump of table consumertoken
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `ConsumerToken`;
     
    CREATE TABLE `ConsumerToken` (
    `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
    `ConsumerId` int(11) unsigned DEFAULT NULL COMMENT 'ConsumerId',
    `Token` varchar(128) NOT NULL DEFAULT '' COMMENT 'token',
    `Expires` datetime NOT NULL DEFAULT '2099-01-01 00:00:00' COMMENT 'token失效时间',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    UNIQUE KEY `IX_Token` (`Token`),
    KEY `DataChange_LastTime` (`DataChange_LastTime`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='consumer token表';
     
    # Dump of table favorite
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `Favorite`;
     
    CREATE TABLE `Favorite` (
    `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
    `UserId` varchar(32) NOT NULL DEFAULT 'default' COMMENT '收藏的用户',
    `AppId` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'AppID',
    `Position` int(32) NOT NULL DEFAULT '10000' COMMENT '收藏顺序',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `AppId` (`AppId`(191)),
    KEY `IX_UserId` (`UserId`),
    KEY `DataChange_LastTime` (`DataChange_LastTime`)
    ) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb4 COMMENT='应用收藏表';
     
    # Dump of table permission
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `Permission`;
     
    CREATE TABLE `Permission` (
    `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
    `PermissionType` varchar(32) NOT NULL DEFAULT '' COMMENT '权限类型',
    `TargetId` varchar(256) NOT NULL DEFAULT '' COMMENT '权限对象类型',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT '' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `IX_TargetId_PermissionType` (`TargetId`(191),`PermissionType`),
    KEY `IX_DataChange_LastTime` (`DataChange_LastTime`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='permission表';
     
     
     
    # Dump of table role
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `Role`;
     
    CREATE TABLE `Role` (
    `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
    `RoleName` varchar(256) NOT NULL DEFAULT '' COMMENT 'Role name',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `IX_RoleName` (`RoleName`(191)),
    KEY `IX_DataChange_LastTime` (`DataChange_LastTime`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色表';
     
     
     
    # Dump of table rolepermission
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `RolePermission`;
     
    CREATE TABLE `RolePermission` (
    `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
    `RoleId` int(10) unsigned DEFAULT NULL COMMENT 'Role Id',
    `PermissionId` int(10) unsigned DEFAULT NULL COMMENT 'Permission Id',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) DEFAULT '' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `IX_DataChange_LastTime` (`DataChange_LastTime`),
    KEY `IX_RoleId` (`RoleId`),
    KEY `IX_PermissionId` (`PermissionId`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色和权限的绑定表';
     
     
     
    # Dump of table serverconfig
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `ServerConfig`;
     
    CREATE TABLE `ServerConfig` (
    `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
    `Key` varchar(64) NOT NULL DEFAULT 'default' COMMENT '配置项Key',
    `Value` varchar(2048) NOT NULL DEFAULT 'default' COMMENT '配置项值',
    `Comment` varchar(1024) DEFAULT '' COMMENT '注释',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `IX_Key` (`Key`),
    KEY `DataChange_LastTime` (`DataChange_LastTime`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配置服务自身配置';
     
     
     
    # Dump of table userrole
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `UserRole`;
     
    CREATE TABLE `UserRole` (
    `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
    `UserId` varchar(128) DEFAULT '' COMMENT '用户身份标识',
    `RoleId` int(10) unsigned DEFAULT NULL COMMENT 'Role Id',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) DEFAULT '' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `IX_DataChange_LastTime` (`DataChange_LastTime`),
    KEY `IX_RoleId` (`RoleId`),
    KEY `IX_UserId_RoleId` (`UserId`,`RoleId`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户和role的绑定表';
     
    # Dump of table Users
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `Users`;
     
    CREATE TABLE `Users` (
    `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
    `Username` varchar(64) NOT NULL DEFAULT 'default' COMMENT '用户名',
    `Password` varchar(64) NOT NULL DEFAULT 'default' COMMENT '密码',
    `Email` varchar(64) NOT NULL DEFAULT 'default' COMMENT '邮箱地址',
    `Enabled` tinyint(4) DEFAULT NULL COMMENT '是否有效',
    PRIMARY KEY (`Id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
     
     
    # Dump of table Authorities
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `Authorities`;
     
    CREATE TABLE `Authorities` (
    `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
    `Username` varchar(64) NOT NULL,
    `Authority` varchar(50) NOT NULL,
    PRIMARY KEY (`Id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
     
     
    # Config
    # ------------------------------------------------------------
    INSERT INTO `ServerConfig` (`Key`, `Value`, `Comment`)
    VALUES
    ('apollo.portal.envs', 'dev', '可支持的环境列表'),
    ('organizations', '[{"orgId":"TEST1","orgName":"样例部门1"},{"orgId":"TEST2","orgName":"样例部门2"}]', '部门列表'),
    ('superAdmin', 'apollo', 'Portal超级管理员'),
    ('api.readTimeout', '10000', 'http接口read timeout'),
    ('consumer.token.salt', 'someSalt', 'consumer token salt'),
    ('admin.createPrivateNamespace.switch', 'true', '是否允许项目管理员创建私有namespace'),
    ('configView.memberOnly.envs', 'dev', '只对项目成员显示配置信息的环境列表,多个env以英文逗号分隔');
     
    INSERT INTO `Users` (`Username`, `Password`, `Email`, `Enabled`)
    VALUES
    ('apollo', '$2a$10$7r20uS.BQ9uBpf3Baj3uQOZvMVvB1RN3PYoKE94gtz2.WAOuiiwXS', 'apollo@acme.com', 1);
     
    INSERT INTO `Authorities` (`Username`, `Authority`) VALUES ('apollo', 'ROLE_user');
     
    # Sample Data
    # ------------------------------------------------------------
    INSERT INTO `App` (`AppId`, `Name`, `OrgId`, `OrgName`, `OwnerName`, `OwnerEmail`)
    VALUES
    ('SampleApp', 'Sample App', 'TEST1', '样例部门1', 'apollo', 'apollo@acme.com');
     
    INSERT INTO `AppNamespace` (`Name`, `AppId`, `Format`, `IsPublic`, `Comment`)
    VALUES
    ('application', 'SampleApp', 'properties', 0, 'default app namespace');
     
    INSERT INTO `Permission` (`Id`, `PermissionType`, `TargetId`)
    VALUES
    (1, 'CreateCluster', 'SampleApp'),
    (2, 'CreateNamespace', 'SampleApp'),
    (3, 'AssignRole', 'SampleApp'),
    (4, 'ModifyNamespace', 'SampleApp+application'),
    (5, 'ReleaseNamespace', 'SampleApp+application');
     
    INSERT INTO `Role` (`Id`, `RoleName`)
    VALUES
    (1, 'Master+SampleApp'),
    (2, 'ModifyNamespace+SampleApp+application'),
    (3, 'ReleaseNamespace+SampleApp+application');
     
    INSERT INTO `RolePermission` (`RoleId`, `PermissionId`)
    VALUES
    (1, 1),
    (1, 2),
    (1, 3),
    (2, 4),
    (3, 5);
     
    INSERT INTO `UserRole` (`UserId`, `RoleId`)
    VALUES
    ('apollo', 1),
    ('apollo', 2),
    ('apollo', 3);
     
    /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
    /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
    /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
    sql语句

    导入成功后,可以通过执行以下sql语句来验证:

    select `Id`, `AppId`, `Name` from ApolloPortalDB.App;

    通过各种MySQL客户端导入sql/apolloconfigdb.sql即可。

    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
     
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
     
    # Create Database
    # ------------------------------------------------------------
    CREATE DATABASE IF NOT EXISTS ApolloConfigDB DEFAULT CHARACTER SET = utf8mb4;
     
    Use ApolloConfigDB;
     
    # Dump of table app
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `App`;
     
    CREATE TABLE `App` (
    `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
    `AppId` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'AppID',
    `Name` varchar(500) NOT NULL DEFAULT 'default' COMMENT '应用名',
    `OrgId` varchar(32) NOT NULL DEFAULT 'default' COMMENT '部门Id',
    `OrgName` varchar(64) NOT NULL DEFAULT 'default' COMMENT '部门名字',
    `OwnerName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerName',
    `OwnerEmail` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerEmail',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `AppId` (`AppId`(191)),
    KEY `DataChange_LastTime` (`DataChange_LastTime`),
    KEY `IX_Name` (`Name`(191))
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用表';
     
     
     
    # Dump of table appnamespace
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `AppNamespace`;
     
    CREATE TABLE `AppNamespace` (
    `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
    `Name` varchar(32) NOT NULL DEFAULT '' COMMENT 'namespace名字,注意,需要全局唯一',
    `AppId` varchar(32) NOT NULL DEFAULT '' COMMENT 'app id',
    `Format` varchar(32) NOT NULL DEFAULT 'properties' COMMENT 'namespace的format类型',
    `IsPublic` bit(1) NOT NULL DEFAULT b'0' COMMENT 'namespace是否为公共',
    `Comment` varchar(64) NOT NULL DEFAULT '' COMMENT '注释',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT '' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `IX_AppId` (`AppId`),
    KEY `Name_AppId` (`Name`,`AppId`),
    KEY `DataChange_LastTime` (`DataChange_LastTime`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用namespace定义';
     
     
     
    # Dump of table audit
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `Audit`;
     
    CREATE TABLE `Audit` (
    `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
    `EntityName` varchar(50) NOT NULL DEFAULT 'default' COMMENT '表名',
    `EntityId` int(10) unsigned DEFAULT NULL COMMENT '记录ID',
    `OpName` varchar(50) NOT NULL DEFAULT 'default' COMMENT '操作类型',
    `Comment` varchar(500) DEFAULT NULL COMMENT '备注',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `DataChange_LastTime` (`DataChange_LastTime`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='日志审计表';
     
     
     
    # Dump of table cluster
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `Cluster`;
     
    CREATE TABLE `Cluster` (
    `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
    `Name` varchar(32) NOT NULL DEFAULT '' COMMENT '集群名字',
    `AppId` varchar(32) NOT NULL DEFAULT '' COMMENT 'App id',
    `ParentClusterId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父cluster',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT '' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `IX_AppId_Name` (`AppId`,`Name`),
    KEY `IX_ParentClusterId` (`ParentClusterId`),
    KEY `DataChange_LastTime` (`DataChange_LastTime`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='集群';
     
     
     
    # Dump of table commit
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `Commit`;
     
    CREATE TABLE `Commit` (
    `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
    `ChangeSets` longtext NOT NULL COMMENT '修改变更集',
    `AppId` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'AppID',
    `ClusterName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ClusterName',
    `NamespaceName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'namespaceName',
    `Comment` varchar(500) DEFAULT NULL COMMENT '备注',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `DataChange_LastTime` (`DataChange_LastTime`),
    KEY `AppId` (`AppId`(191)),
    KEY `ClusterName` (`ClusterName`(191)),
    KEY `NamespaceName` (`NamespaceName`(191))
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='commit 历史表';
     
    # Dump of table grayreleaserule
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `GrayReleaseRule`;
     
    CREATE TABLE `GrayReleaseRule` (
    `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
    `AppId` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'AppID',
    `ClusterName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'Cluster Name',
    `NamespaceName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'Namespace Name',
    `BranchName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'branch name',
    `Rules` varchar(16000) DEFAULT '[]' COMMENT '灰度规则',
    `ReleaseId` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '灰度对应的release',
    `BranchStatus` tinyint(2) DEFAULT '1' COMMENT '灰度分支状态: 0:删除分支,1:正在使用的规则 2:全量发布',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `DataChange_LastTime` (`DataChange_LastTime`),
    KEY `IX_Namespace` (`AppId`,`ClusterName`,`NamespaceName`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='灰度规则表';
     
     
    # Dump of table instance
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `Instance`;
     
    CREATE TABLE `Instance` (
    `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
    `AppId` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'AppID',
    `ClusterName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'ClusterName',
    `DataCenter` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'Data Center Name',
    `Ip` varchar(32) NOT NULL DEFAULT '' COMMENT 'instance ip',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    UNIQUE KEY `IX_UNIQUE_KEY` (`AppId`,`ClusterName`,`Ip`,`DataCenter`),
    KEY `IX_IP` (`Ip`),
    KEY `IX_DataChange_LastTime` (`DataChange_LastTime`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='使用配置的应用实例';
     
     
     
    # Dump of table instanceconfig
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `InstanceConfig`;
     
    CREATE TABLE `InstanceConfig` (
    `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
    `InstanceId` int(11) unsigned DEFAULT NULL COMMENT 'Instance Id',
    `ConfigAppId` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'Config App Id',
    `ConfigClusterName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'Config Cluster Name',
    `ConfigNamespaceName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'Config Namespace Name',
    `ReleaseKey` varchar(64) NOT NULL DEFAULT '' COMMENT '发布的Key',
    `ReleaseDeliveryTime` timestamp NULL DEFAULT NULL COMMENT '配置获取时间',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    UNIQUE KEY `IX_UNIQUE_KEY` (`InstanceId`,`ConfigAppId`,`ConfigNamespaceName`),
    KEY `IX_ReleaseKey` (`ReleaseKey`),
    KEY `IX_DataChange_LastTime` (`DataChange_LastTime`),
    KEY `IX_Valid_Namespace` (`ConfigAppId`,`ConfigClusterName`,`ConfigNamespaceName`,`DataChange_LastTime`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用实例的配置信息';
     
     
     
    # Dump of table item
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `Item`;
     
    CREATE TABLE `Item` (
    `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
    `NamespaceId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '集群NamespaceId',
    `Key` varchar(128) NOT NULL DEFAULT 'default' COMMENT '配置项Key',
    `Value` longtext NOT NULL COMMENT '配置项值',
    `Comment` varchar(1024) DEFAULT '' COMMENT '注释',
    `LineNum` int(10) unsigned DEFAULT '0' COMMENT '行号',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `IX_GroupId` (`NamespaceId`),
    KEY `DataChange_LastTime` (`DataChange_LastTime`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配置项目';
     
     
     
    # Dump of table namespace
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `Namespace`;
     
    CREATE TABLE `Namespace` (
    `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
    `AppId` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'AppID',
    `ClusterName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'Cluster Name',
    `NamespaceName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'Namespace Name',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `AppId_ClusterName_NamespaceName` (`AppId`(191),`ClusterName`(191),`NamespaceName`(191)),
    KEY `DataChange_LastTime` (`DataChange_LastTime`),
    KEY `IX_NamespaceName` (`NamespaceName`(191))
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='命名空间';
     
     
     
    # Dump of table namespacelock
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `NamespaceLock`;
     
    CREATE TABLE `NamespaceLock` (
    `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
    `NamespaceId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '集群NamespaceId',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT 'default' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    `IsDeleted` bit(1) DEFAULT b'0' COMMENT '软删除',
    PRIMARY KEY (`Id`),
    UNIQUE KEY `IX_NamespaceId` (`NamespaceId`),
    KEY `DataChange_LastTime` (`DataChange_LastTime`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='namespace的编辑锁';
     
     
     
    # Dump of table release
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `Release`;
     
    CREATE TABLE `Release` (
    `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
    `ReleaseKey` varchar(64) NOT NULL DEFAULT '' COMMENT '发布的Key',
    `Name` varchar(64) NOT NULL DEFAULT 'default' COMMENT '发布名字',
    `Comment` varchar(256) DEFAULT NULL COMMENT '发布说明',
    `AppId` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'AppID',
    `ClusterName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ClusterName',
    `NamespaceName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'namespaceName',
    `Configurations` longtext NOT NULL COMMENT '发布配置',
    `IsAbandoned` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否废弃',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `AppId_ClusterName_GroupName` (`AppId`(191),`ClusterName`(191),`NamespaceName`(191)),
    KEY `DataChange_LastTime` (`DataChange_LastTime`),
    KEY `IX_ReleaseKey` (`ReleaseKey`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='发布';
     
     
    # Dump of table releasehistory
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `ReleaseHistory`;
     
    CREATE TABLE `ReleaseHistory` (
    `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
    `AppId` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'AppID',
    `ClusterName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'ClusterName',
    `NamespaceName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'namespaceName',
    `BranchName` varchar(32) NOT NULL DEFAULT 'default' COMMENT '发布分支名',
    `ReleaseId` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '关联的Release Id',
    `PreviousReleaseId` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '前一次发布的ReleaseId',
    `Operation` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '发布类型,0: 普通发布,1: 回滚,2: 灰度发布,3: 灰度规则更新,4: 灰度合并回主分支发布,5: 主分支发布灰度自动发布,6: 主分支回滚灰度自动发布,7: 放弃灰度',
    `OperationContext` longtext NOT NULL COMMENT '发布上下文信息',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `IX_Namespace` (`AppId`,`ClusterName`,`NamespaceName`,`BranchName`),
    KEY `IX_ReleaseId` (`ReleaseId`),
    KEY `IX_DataChange_LastTime` (`DataChange_LastTime`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='发布历史';
     
     
    # Dump of table releasemessage
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `ReleaseMessage`;
     
    CREATE TABLE `ReleaseMessage` (
    `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
    `Message` varchar(1024) NOT NULL DEFAULT '' COMMENT '发布的消息内容',
    `DataChange_LastTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `DataChange_LastTime` (`DataChange_LastTime`),
    KEY `IX_Message` (`Message`(191))
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='发布消息';
     
     
     
    # Dump of table serverconfig
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `ServerConfig`;
     
    CREATE TABLE `ServerConfig` (
    `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
    `Key` varchar(64) NOT NULL DEFAULT 'default' COMMENT '配置项Key',
    `Cluster` varchar(32) NOT NULL DEFAULT 'default' COMMENT '配置对应的集群,default为不针对特定的集群',
    `Value` varchar(2048) NOT NULL DEFAULT 'default' COMMENT '配置项值',
    `Comment` varchar(1024) DEFAULT '' COMMENT '注释',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `IX_Key` (`Key`),
    KEY `DataChange_LastTime` (`DataChange_LastTime`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配置服务自身配置';
     
    # Dump of table accesskey
    # ------------------------------------------------------------
     
    DROP TABLE IF EXISTS `AccessKey`;
     
    CREATE TABLE `AccessKey` (
    `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
    `AppId` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'AppID',
    `Secret` varchar(128) NOT NULL DEFAULT '' COMMENT 'Secret',
    `IsEnabled` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: enabled, 0: disabled',
    `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
    `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
    `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `DataChange_LastModifiedBy` varchar(32) NOT NULL DEFAULT '' COMMENT '最后修改人邮箱前缀',
    `DataChange_LastTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY (`Id`),
    KEY `AppId` (`AppId`(191)),
    KEY `DataChange_LastTime` (`DataChange_LastTime`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='访问密钥';
     
    # Config
    # ------------------------------------------------------------
    INSERT INTO `ServerConfig` (`Key`, `Cluster`, `Value`, `Comment`)
    VALUES
    ('eureka.service.url', 'default', 'http://localhost:8080/eureka/', 'Eureka服务Url,多个service以英文逗号分隔'),
    ('namespace.lock.switch', 'default', 'false', '一次发布只能有一个人修改开关'),
    ('item.value.length.limit', 'default', '20000', 'item value最大长度限制'),
    ('config-service.cache.enabled', 'default', 'false', 'ConfigService是否开启缓存,开启后能提高性能,但是会增大内存消耗!'),
    ('item.key.length.limit', 'default', '128', 'item key 最大长度限制');
     
    # Sample Data
    # ------------------------------------------------------------
    INSERT INTO `App` (`AppId`, `Name`, `OrgId`, `OrgName`, `OwnerName`, `OwnerEmail`)
    VALUES
    ('SampleApp', 'Sample App', 'TEST1', '样例部门1', 'apollo', 'apollo@acme.com');
     
    INSERT INTO `AppNamespace` (`Name`, `AppId`, `Format`, `IsPublic`, `Comment`)
    VALUES
    ('application', 'SampleApp', 'properties', 0, 'default app namespace');
     
    INSERT INTO `Cluster` (`Name`, `AppId`)
    VALUES
    ('default', 'SampleApp');
     
    INSERT INTO `Namespace` (`Id`, `AppId`, `ClusterName`, `NamespaceName`)
    VALUES
    (1, 'SampleApp', 'default', 'application');
     
     
    INSERT INTO `Item` (`NamespaceId`, `Key`, `Value`, `Comment`, `LineNum`)
    VALUES
    (1, 'timeout', '100', 'sample timeout配置', 1);
     
    INSERT INTO `Release` (`ReleaseKey`, `Name`, `Comment`, `AppId`, `ClusterName`, `NamespaceName`, `Configurations`)
    VALUES
    ('20161009155425-d3a0749c6e20bc15', '20161009155424-release', 'Sample发布', 'SampleApp', 'default', 'application', '{"timeout":"100"}');
     
    INSERT INTO `ReleaseHistory` (`AppId`, `ClusterName`, `NamespaceName`, `BranchName`, `ReleaseId`, `PreviousReleaseId`, `Operation`, `OperationContext`, `DataChange_CreatedBy`, `DataChange_LastModifiedBy`)
    VALUES
    ('SampleApp', 'default', 'application', 'default', 1, 0, 0, '{}', 'apollo', 'apollo');
     
    INSERT INTO `ReleaseMessage` (`Message`)
    VALUES
    ('SampleApp+default+application');
     
    /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
    /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
    /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
    sql语句

    导入成功后,可以通过执行以下sql语句来验证:

    select `NamespaceId`, `Key`, `Value`, `Comment` from ApolloConfigDB.Item;

    4 配置数据库连接信息

    Apollo服务端需要知道如何连接到你前面创建的数据库,所以需要编辑demo.sh,修改ApolloPortalDB和ApolloConfigDB相关的数据库连接串信息。

    注意:填入的用户需要具备对ApolloPortalDB和ApolloConfigDB数据的读写权限。

    注意:不要修改demo.sh的其它部分

    vim 编辑内容 展开源码

    3.4 启动Apollo配置中心

    #apollo config db info
    apollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
    apollo_config_db_username=用户名
    apollo_config_db_password=密码(如果没有密码,留空即可)
     
     
    # apollo portal db info
    apollo_portal_db_url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
    apollo_portal_db_username=用户名
    apollo_portal_db_password=密码(如果没有密码,留空即可)

    1:确保端口未被占用
    Quick Start脚本会在本地启动3个服务,分别使用8070, 8080, 8090端口,请确保这3个端口当前没有被使用。
    可以通过如下命令检查:
    lsof -i:8080
    ps:如果是阿里云服务器注意同样需要开放相应的接口

    2 执行启动脚本
    chmod 755 demo.sh
    ./demo.sh start
    当看到如下输出后,就说明启动成功了

     如果启动报错

    Config service failed to start in 120 seconds! Please check ./service/apollo-service.log for more information.

    可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
    mysql -u root -pvmwaremysql>use mysql;
    mysql>update user set host = '%' where user = 'root';

    3.5 启动Apollo配置中心

    查看样例配置
    打开http://localhost:8070

    登录
    输入用户名apollo,密码admin后登录

    点击SampleApp进入配置界面,可以看到当前有一个配置timeout=100 配置界面

    如果提示系统出错,请重试或联系系统负责人,请稍后几秒钟重试一下,因为通过Eureka注册的服务有一个刷新的延时。

    3.6 运行客户端程序(Java官方Demo)


    1:我们准备了一个简单的Demo客户端来演示从Apollo配置中心获取配置。

    运行./demo.sh client启动Demo客户端,忽略前面的调试信息,可以看到如下提示:

    输入timeout,会看到如下信息:

    2:运行./demo.sh client启动Demo客户端,忽略前面的调试信息,可以看到如下提示:

    输入timeout,会看到如下信息:

    3:修改配置并发布
    在配置界面点击timeout这一项的编辑按钮 编辑配置

    在弹出框中把值改成200并提交 配置修改

    点击发布按钮,并填写发布信息 发布

    发布信息

    4:客户端查看修改后的值
    如果客户端一直在运行的话,在配置发布后就会监听到配置变化,并输出修改的配置信息:
    再次输入timeout查看对应的值,会看到如下信息:

    3.7 Python应用接入Apollo 

    Demo下载: https://github.com/xhrg-product/apollo-client-python 

    1:在配置中心添加一个新的项目并配置

     

     

     2:打开下载后的代码Demo并进行配置

    同样配置修改环境变量

    运行查看

    3:修改代码,验证实时性(热发布)

    下一节 饮冰三年-人工智能-Python-56-Apollo之04应用

  • 相关阅读:
    面试题 01.04. 回文排列
    面试题 01.03. URL化
    面试题 01.02. 判定是否互为字符重排
    面试题 01.01. 判定字符是否唯一
    剑指 Offer 68
    剑指 Offer 68
    Wpf杀死所有线程、Wpf关闭程序杀死所有线程
    wpf的webbrowser与javascript交互
    WPF将HHMMSS转换为时间格式字符串
    IDEA建立Spring MVC Hello World 详细入门教程
  • 原文地址:https://www.cnblogs.com/YK2012/p/13728814.html
Copyright © 2011-2022 走看看