• Nacos适配达梦


    1. 下载nacos源码

    GitHub下载地址:https://github.com/alibaba/nacos/releases/tag/2.1.2
    Gitee下载地址:https://gitee.com/mirrors/Nacos/tree/2.1.2

    1. idea安装protobuf插件

    在这里插入图片描述

    1. 使用maven编译项目

    在这里插入图片描述
    遇到xxx不存在的就clean后compile一遍
    在这里插入图片描述

    1. 修改pom文件,引入达梦驱动(中央仓库和阿里的仓库都有)
    			<dependency>
                    <groupId>com.damenggroupId>
                    <artifactId>DmJdbcDriver18artifactId>
                    <version>8.1.1.193version>
                    
                dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    修改父工程的pom文件,并注释掉mysql的依赖:
    在这里插入图片描述
    在这里插入图片描述
    修改naming模块和config模块下的pom文件,同样注掉MySQL驱动:
    在这里插入图片描述
    在这里插入图片描述
    5. 修改console模块下的application.properties:

    spring.datasource.platform=mysql,此处依然是mysql,写dm的话会导致启动时no datasource set;
    platform只是表示是否使用外置数据库 ; 使用什么数据库则由db.jdbcDriverName决定

    ### If use MySQL as datasource: 
    spring.datasource.platform=mysql
    ### Count of DB:
    db.num=1
    ### Connect URL of DB:
    db.jdbcDriverName=dm.jdbc.driver.DmDriver
    db.url.0=jdbc:dm://localhost:5236/NACOS?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
    db.user.0=NACOS
    db.password.0=xxx
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. 修改distribution模块下的application.properties:
    ### If use MySQL as datasource:
    spring.datasource.platform=mysql
    ### Count of DB:
    db.num=1
    ### Connect URL of DB:
    db.jdbcDriverName=dm.jdbc.driver.DmDriver
    db.url.0=jdbc:dm://localhost:5236/NACOS?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
    db.user.0=NACOS
    db.password.0=xxx
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. 修改nacos-config模块下的com.alibaba.nacos.config.server.service.datasource.ExternalDataSourceProperties.java文件
      (1).添加private String jdbcDriverName;
      (2).private static final String TEST_QUERY = “SELECT 1 FROM dual”;
      (3).
    //poolProperties.setDriverClassName(jdbcDriverName);
                if (StringUtils.isEmpty(jdbcDriverName)) {
                    poolProperties.setDriverClassName(JDBC_DRIVER_NAME);
                } else {
                    poolProperties.setDriverClassName(jdbcDriverName);
                }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    完整代码如下:

    /*
     * Copyright 1999-2018 Alibaba Group Holding Ltd.
     *
     * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
     * the License. You may obtain a copy of the License at
     *
     * http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
     * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
     * specific language governing permissions and limitations under the License.
     */
    
    package com.alibaba.nacos.config.server.service.datasource;
    
    import com.alibaba.nacos.common.utils.Preconditions;
    import com.alibaba.nacos.common.utils.StringUtils;
    import com.zaxxer.hikari.HikariDataSource;
    import org.apache.commons.collections.CollectionUtils;
    import org.springframework.boot.context.properties.bind.Bindable;
    import org.springframework.boot.context.properties.bind.Binder;
    import org.springframework.core.env.Environment;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Objects;
    
    import static com.alibaba.nacos.common.utils.CollectionUtils.getOrDefault;
    
    /**
     * Properties of external DataSource.
     *
     * @author Nacos
     */
    public class ExternalDataSourceProperties {
        
        private static final String JDBC_DRIVER_NAME = "com.mysql.cj.jdbc.Driver";
    
        private String jdbcDriverName;
    
        private static final String TEST_QUERY = "SELECT 1 FROM dual";
        
        private Integer num;
        
        private List<String> url = new ArrayList<>();
        
        private List<String> user = new ArrayList<>();
        
        private List<String> password = new ArrayList<>();
        
        public void setNum(Integer num) {
            this.num = num;
        }
        
        public void setUrl(List<String> url) {
            this.url = url;
        }
        
        public void setUser(List<String> user) {
            this.user = user;
        }
        
        public void setPassword(List<String> password) {
            this.password = password;
        }
    
        public String getJdbcDriverName() {
            return jdbcDriverName;
        }
    
        public void setJdbcDriverName(String jdbcDriverName) {
            this.jdbcDriverName = jdbcDriverName;
        }
    
        
        /**
         * Build serveral HikariDataSource.
         *
         * @param environment {@link Environment}
         * @param callback    Callback function when constructing data source
         * @return List of {@link HikariDataSource}
         */
        List<HikariDataSource> build(Environment environment, Callback<HikariDataSource> callback) {
            List<HikariDataSource> dataSources = new ArrayList<>();
            Binder.get(environment).bind("db", Bindable.ofInstance(this));
            Preconditions.checkArgument(Objects.nonNull(num), "db.num is null");
            Preconditions.checkArgument(CollectionUtils.isNotEmpty(user), "db.user or db.user.[index] is null");
            Preconditions.checkArgument(CollectionUtils.isNotEmpty(password), "db.password or db.password.[index] is null");
            for (int index = 0; index < num; index++) {
                int currentSize = index + 1;
                Preconditions.checkArgument(url.size() >= currentSize, "db.url.%s is null", index);
                DataSourcePoolProperties poolProperties = DataSourcePoolProperties.build(environment);
                //poolProperties.setDriverClassName(jdbcDriverName);
                if (StringUtils.isEmpty(jdbcDriverName)) {
                    poolProperties.setDriverClassName(JDBC_DRIVER_NAME);
                } else {
                    poolProperties.setDriverClassName(jdbcDriverName);
                }
                poolProperties.setJdbcUrl(url.get(index).trim());
                poolProperties.setUsername(getOrDefault(user, index, user.get(0)).trim());
                poolProperties.setPassword(getOrDefault(password, index, password.get(0)).trim());
                HikariDataSource ds = poolProperties.getDataSource();
                ds.setConnectionTestQuery(TEST_QUERY);
                dataSources.add(ds);
                callback.accept(ds);
            }
            Preconditions.checkArgument(CollectionUtils.isNotEmpty(dataSources), "no datasource available");
            return dataSources;
        }
        
        interface Callback<D> {
            
            /**
             * Perform custom logic.
             *
             * @param datasource dataSource.
             */
            void accept(D datasource);
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    1. 修改 com/alibaba/nacos/config/server/constant/PropertiesConstant.java;
      将源代码的mysql改为DM
      在这里插入图片描述
    2. 修改com/alibaba/nacos/config/server/utils/PropertyUtil.java
      亦是将mysql改为DM
    setUseExternalDB(PropertiesConstant.DM
                        .equalsIgnoreCase(getString(PropertiesConstant.SPRING_DATASOURCE_PLATFORM, "")));
    
    • 1
    • 2
    1. 修改com.alibaba.nacos.core.listener.StartingApplicationListener.java

    在这里插入图片描述

    1. 编辑启动类,加入-Dnacos.standalone=true参数,意思是以单机模式启动,启动类在console/src/main/java/com/alibaba/nacos/Nacos.java
      在这里插入图片描述
    2. 数据库脚本,“NACOS”为模式名
    CREATE TABLE "NACOS"."config_info"
    (
    "id" BIGINT IDENTITY(1, 1) NOT NULL,
    "data_id" VARCHAR(255) NOT NULL,
    "group_id" VARCHAR(255),
    "content" CLOB NOT NULL,
    "md5" VARCHAR(32),
    "gmt_create" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
    "gmt_modified" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
    "src_user" TEXT,
    "src_ip" VARCHAR(50),
    "app_name" VARCHAR(128),
    "tenant_id" VARCHAR(128) DEFAULT '',
    "c_desc" VARCHAR(256),
    "c_use" VARCHAR(64),
    "effect" VARCHAR(64),
    "type" VARCHAR(64),
    "c_schema" TEXT,
    "encrypted_data_key" TEXT NOT NULL,
    NOT CLUSTER PRIMARY KEY("id"),
    CONSTRAINT "uk_configinfo_datagrouptenant" UNIQUE("data_id", "group_id", "tenant_id")) STORAGE(ON "NACOS", CLUSTERBTR) ;
    
    COMMENT ON TABLE "NACOS"."config_info" IS 'config_info';
    COMMENT ON COLUMN "NACOS"."config_info"."content" IS 'content';
    COMMENT ON COLUMN "NACOS"."config_info"."data_id" IS 'data_id';
    COMMENT ON COLUMN "NACOS"."config_info"."encrypted_data_key" IS '秘钥';
    COMMENT ON COLUMN "NACOS"."config_info"."gmt_create" IS '创建时间';
    COMMENT ON COLUMN "NACOS"."config_info"."gmt_modified" IS '修改时间';
    COMMENT ON COLUMN "NACOS"."config_info"."id" IS 'id';
    COMMENT ON COLUMN "NACOS"."config_info"."md5" IS 'md5';
    COMMENT ON COLUMN "NACOS"."config_info"."src_ip" IS 'source ip';
    COMMENT ON COLUMN "NACOS"."config_info"."src_user" IS 'source user';
    COMMENT ON COLUMN "NACOS"."config_info"."tenant_id" IS '租户字段';
    
    
    CREATE TABLE "NACOS"."config_info_aggr"
    (
    "id" BIGINT IDENTITY(1, 1) NOT NULL,
    "data_id" VARCHAR(255) NOT NULL,
    "group_id" VARCHAR(255) NOT NULL,
    "datum_id" VARCHAR(255) NOT NULL,
    "content" CLOB NOT NULL,
    "gmt_modified" TIMESTAMP(0) NOT NULL,
    "app_name" VARCHAR(128),
    "tenant_id" VARCHAR(128) DEFAULT '',
    NOT CLUSTER PRIMARY KEY("id"),
    CONSTRAINT "uk_configinfoaggr_datagrouptenantdatum" UNIQUE("data_id", "group_id", "tenant_id", "datum_id")) STORAGE(ON "NACOS", CLUSTERBTR) ;
    
    COMMENT ON TABLE "NACOS"."config_info_aggr" IS '增加租户字段';
    COMMENT ON COLUMN "NACOS"."config_info_aggr"."content" IS '内容';
    COMMENT ON COLUMN "NACOS"."config_info_aggr"."data_id" IS 'data_id';
    COMMENT ON COLUMN "NACOS"."config_info_aggr"."datum_id" IS 'datum_id';
    COMMENT ON COLUMN "NACOS"."config_info_aggr"."gmt_modified" IS '修改时间';
    COMMENT ON COLUMN "NACOS"."config_info_aggr"."group_id" IS 'group_id';
    COMMENT ON COLUMN "NACOS"."config_info_aggr"."id" IS 'id';
    COMMENT ON COLUMN "NACOS"."config_info_aggr"."tenant_id" IS '租户字段';
    
    
    CREATE TABLE "NACOS"."config_info_beta"
    (
    "id" BIGINT IDENTITY(1, 1) NOT NULL,
    "data_id" VARCHAR(255) NOT NULL,
    "group_id" VARCHAR(128) NOT NULL,
    "app_name" VARCHAR(128),
    "content" CLOB NOT NULL,
    "beta_ips" VARCHAR(1024),
    "md5" VARCHAR(32),
    "gmt_create" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
    "gmt_modified" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
    "src_user" TEXT,
    "src_ip" VARCHAR(50),
    "tenant_id" VARCHAR(128) DEFAULT '',
    "encrypted_data_key" TEXT NOT NULL,
    NOT CLUSTER PRIMARY KEY("id"),
    CONSTRAINT "uk_configinfobeta_datagrouptenant" UNIQUE("data_id", "group_id", "tenant_id")) STORAGE(ON "NACOS", CLUSTERBTR) ;
    
    COMMENT ON TABLE "NACOS"."config_info_beta" IS 'config_info_beta';
    COMMENT ON COLUMN "NACOS"."config_info_beta"."app_name" IS 'app_name';
    COMMENT ON COLUMN "NACOS"."config_info_beta"."beta_ips" IS 'betaIps';
    COMMENT ON COLUMN "NACOS"."config_info_beta"."content" IS 'content';
    COMMENT ON COLUMN "NACOS"."config_info_beta"."data_id" IS 'data_id';
    COMMENT ON COLUMN "NACOS"."config_info_beta"."encrypted_data_key" IS '秘钥';
    COMMENT ON COLUMN "NACOS"."config_info_beta"."gmt_create" IS '创建时间';
    COMMENT ON COLUMN "NACOS"."config_info_beta"."gmt_modified" IS '修改时间';
    COMMENT ON COLUMN "NACOS"."config_info_beta"."group_id" IS 'group_id';
    COMMENT ON COLUMN "NACOS"."config_info_beta"."id" IS 'id';
    COMMENT ON COLUMN "NACOS"."config_info_beta"."md5" IS 'md5';
    COMMENT ON COLUMN "NACOS"."config_info_beta"."src_ip" IS 'source ip';
    COMMENT ON COLUMN "NACOS"."config_info_beta"."src_user" IS 'source user';
    COMMENT ON COLUMN "NACOS"."config_info_beta"."tenant_id" IS '租户字段';
    
    
    CREATE TABLE "NACOS"."config_info_tag"
    (
    "id" BIGINT IDENTITY(1, 1) NOT NULL,
    "data_id" VARCHAR(255) NOT NULL,
    "group_id" VARCHAR(128) NOT NULL,
    "tenant_id" VARCHAR(128) DEFAULT '',
    "tag_id" VARCHAR(128) NOT NULL,
    "app_name" VARCHAR(128),
    "content" CLOB NOT NULL,
    "md5" VARCHAR(32),
    "gmt_create" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
    "gmt_modified" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
    "src_user" TEXT,
    "src_ip" VARCHAR(50),
    NOT CLUSTER PRIMARY KEY("id"),
    CONSTRAINT "uk_configinfotag_datagrouptenanttag" UNIQUE("data_id", "group_id", "tenant_id", "tag_id")) STORAGE(ON "NACOS", CLUSTERBTR) ;
    
    COMMENT ON TABLE "NACOS"."config_info_tag" IS 'config_info_tag';
    COMMENT ON COLUMN "NACOS"."config_info_tag"."app_name" IS 'app_name';
    COMMENT ON COLUMN "NACOS"."config_info_tag"."content" IS 'content';
    COMMENT ON COLUMN "NACOS"."config_info_tag"."data_id" IS 'data_id';
    COMMENT ON COLUMN "NACOS"."config_info_tag"."gmt_create" IS '创建时间';
    COMMENT ON COLUMN "NACOS"."config_info_tag"."gmt_modified" IS '修改时间';
    COMMENT ON COLUMN "NACOS"."config_info_tag"."group_id" IS 'group_id';
    COMMENT ON COLUMN "NACOS"."config_info_tag"."id" IS 'id';
    COMMENT ON COLUMN "NACOS"."config_info_tag"."md5" IS 'md5';
    COMMENT ON COLUMN "NACOS"."config_info_tag"."src_ip" IS 'source ip';
    COMMENT ON COLUMN "NACOS"."config_info_tag"."src_user" IS 'source user';
    COMMENT ON COLUMN "NACOS"."config_info_tag"."tag_id" IS 'tag_id';
    COMMENT ON COLUMN "NACOS"."config_info_tag"."tenant_id" IS 'tenant_id';
    
    
    CREATE TABLE "NACOS"."config_tags_relation"
    (
    "id" BIGINT NOT NULL,
    "tag_name" VARCHAR(128) NOT NULL,
    "tag_type" VARCHAR(64),
    "data_id" VARCHAR(255) NOT NULL,
    "group_id" VARCHAR(128) NOT NULL,
    "tenant_id" VARCHAR(128) DEFAULT '',
    "nid" BIGINT IDENTITY(1, 1) NOT NULL,
    NOT CLUSTER PRIMARY KEY("nid"),
    CONSTRAINT "uk_configtagrelation_configidtag" UNIQUE("id", "tag_name", "tag_type")) STORAGE(ON "NACOS", CLUSTERBTR) ;
    
    COMMENT ON TABLE "NACOS"."config_tags_relation" IS 'config_tag_relation';
    COMMENT ON COLUMN "NACOS"."config_tags_relation"."data_id" IS 'data_id';
    COMMENT ON COLUMN "NACOS"."config_tags_relation"."group_id" IS 'group_id';
    COMMENT ON COLUMN "NACOS"."config_tags_relation"."id" IS 'id';
    COMMENT ON COLUMN "NACOS"."config_tags_relation"."tag_name" IS 'tag_name';
    COMMENT ON COLUMN "NACOS"."config_tags_relation"."tag_type" IS 'tag_type';
    COMMENT ON COLUMN "NACOS"."config_tags_relation"."tenant_id" IS 'tenant_id';
    
    
    CREATE  INDEX "INDEX27450417857800" ON "NACOS"."config_tags_relation"("tenant_id" ASC) STORAGE(ON "NACOS", CLUSTERBTR) ;
    
    CREATE TABLE "NACOS"."group_capacity"
    (
    "id" BIGINT IDENTITY(1, 1) NOT NULL,
    "group_id" VARCHAR(128) DEFAULT '' NOT NULL,
    "quota" BIGINT DEFAULT 0 NOT NULL,
    "usage" BIGINT DEFAULT 0 NOT NULL,
    "max_size" BIGINT DEFAULT 0 NOT NULL,
    "max_aggr_count" BIGINT DEFAULT 0 NOT NULL,
    "max_aggr_size" BIGINT DEFAULT 0 NOT NULL,
    "max_history_count" BIGINT DEFAULT 0 NOT NULL,
    "gmt_create" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
    "gmt_modified" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
    NOT CLUSTER PRIMARY KEY("id"),
    CONSTRAINT "uk_group_id" UNIQUE("group_id"),
    CHECK("quota" >= 0)
    ,CHECK("usage" >= 0)
    ,CHECK("max_size" >= 0)
    ,CHECK("max_aggr_count" >= 0)
    ,CHECK("max_aggr_size" >= 0)
    ,CHECK("max_history_count" >= 0)) STORAGE(ON "NACOS", CLUSTERBTR) ;
    
    COMMENT ON TABLE "NACOS"."group_capacity" IS '集群、各Group容量信息表';
    COMMENT ON COLUMN "NACOS"."group_capacity"."gmt_create" IS '创建时间';
    COMMENT ON COLUMN "NACOS"."group_capacity"."gmt_modified" IS '修改时间';
    COMMENT ON COLUMN "NACOS"."group_capacity"."group_id" IS 'Group ID,空字符表示整个集群';
    COMMENT ON COLUMN "NACOS"."group_capacity"."id" IS '主键ID';
    COMMENT ON COLUMN "NACOS"."group_capacity"."max_aggr_count" IS '聚合子配置最大个数,,0表示使用默认值';
    COMMENT ON COLUMN "NACOS"."group_capacity"."max_aggr_size" IS '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值';
    COMMENT ON COLUMN "NACOS"."group_capacity"."max_history_count" IS '最大变更历史数量';
    COMMENT ON COLUMN "NACOS"."group_capacity"."max_size" IS '单个配置大小上限,单位为字节,0表示使用默认值';
    COMMENT ON COLUMN "NACOS"."group_capacity"."quota" IS '配额,0表示使用默认值';
    COMMENT ON COLUMN "NACOS"."group_capacity"."usage" IS '使用量';
    
    
    CREATE TABLE "NACOS"."his_config_info"
    (
    "id" DECIMAL(20,0) NOT NULL,
    "nid" BIGINT IDENTITY(1, 1) NOT NULL,
    "data_id" VARCHAR(255) NOT NULL,
    "group_id" VARCHAR(128) NOT NULL,
    "app_name" VARCHAR(128),
    "content" CLOB NOT NULL,
    "md5" VARCHAR(32),
    "gmt_create" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
    "gmt_modified" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
    "src_user" TEXT,
    "src_ip" VARCHAR(50),
    "op_type" CHAR(10),
    "tenant_id" VARCHAR(128) DEFAULT '',
    "encrypted_data_key" TEXT NOT NULL,
    NOT CLUSTER PRIMARY KEY("nid"),
    CHECK("id" >= 0)) STORAGE(ON "NACOS", CLUSTERBTR) ;
    
    COMMENT ON TABLE "NACOS"."his_config_info" IS '多租户改造';
    COMMENT ON COLUMN "NACOS"."his_config_info"."app_name" IS 'app_name';
    COMMENT ON COLUMN "NACOS"."his_config_info"."encrypted_data_key" IS '秘钥';
    COMMENT ON COLUMN "NACOS"."his_config_info"."tenant_id" IS '租户字段';
    
    
    CREATE  INDEX "idx_gmt_create" ON "NACOS"."his_config_info"("gmt_create" ASC) STORAGE(ON "NACOS", CLUSTERBTR) ;
    CREATE  INDEX "idx_did" ON "NACOS"."his_config_info"("data_id" ASC) STORAGE(ON "NACOS", CLUSTERBTR) ;
    CREATE  INDEX "idx_gmt_modified" ON "NACOS"."his_config_info"("gmt_modified" ASC) STORAGE(ON "NACOS", CLUSTERBTR) ;
    
    CREATE TABLE "NACOS"."permissions"
    (
    "role" VARCHAR(50) NOT NULL,
    "resource" VARCHAR(255) NOT NULL,
    "action" VARCHAR(8) NOT NULL,
    CONSTRAINT "uk_role_permission" UNIQUE("role", "resource", "action")) STORAGE(ON "NACOS", CLUSTERBTR) ;
    
    CREATE TABLE "NACOS"."roles"
    (
    "username" VARCHAR(50) NOT NULL,
    "role" VARCHAR(50) NOT NULL,
    CONSTRAINT "idx_user_role" UNIQUE("username", "role")) STORAGE(ON "NACOS", CLUSTERBTR) ;
    insert into "NACOS"."roles"("username", "role")  VALUES('nacos', 'ROLE_ADMIN');
    
    
    CREATE TABLE "NACOS"."tenant_capacity"
    (
    "id" BIGINT IDENTITY(1, 1) NOT NULL,
    "tenant_id" VARCHAR(128) DEFAULT '' NOT NULL,
    "quota" BIGINT DEFAULT 0 NOT NULL,
    "usage" BIGINT DEFAULT 0 NOT NULL,
    "max_size" BIGINT DEFAULT 0 NOT NULL,
    "max_aggr_count" BIGINT DEFAULT 0 NOT NULL,
    "max_aggr_size" BIGINT DEFAULT 0 NOT NULL,
    "max_history_count" BIGINT DEFAULT 0 NOT NULL,
    "gmt_create" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
    "gmt_modified" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
    NOT CLUSTER PRIMARY KEY("id"),
    CONSTRAINT "uk_tenant_id" UNIQUE("tenant_id"),
    CHECK("quota" >= 0)
    ,CHECK("usage" >= 0)
    ,CHECK("max_size" >= 0)
    ,CHECK("max_aggr_count" >= 0)
    ,CHECK("max_aggr_size" >= 0)
    ,CHECK("max_history_count" >= 0)) STORAGE(ON "NACOS", CLUSTERBTR) ;
    
    COMMENT ON TABLE "NACOS"."tenant_capacity" IS '租户容量信息表';
    COMMENT ON COLUMN "NACOS"."tenant_capacity"."gmt_create" IS '创建时间';
    COMMENT ON COLUMN "NACOS"."tenant_capacity"."gmt_modified" IS '修改时间';
    COMMENT ON COLUMN "NACOS"."tenant_capacity"."id" IS '主键ID';
    COMMENT ON COLUMN "NACOS"."tenant_capacity"."max_aggr_count" IS '聚合子配置最大个数';
    COMMENT ON COLUMN "NACOS"."tenant_capacity"."max_aggr_size" IS '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值';
    COMMENT ON COLUMN "NACOS"."tenant_capacity"."max_history_count" IS '最大变更历史数量';
    COMMENT ON COLUMN "NACOS"."tenant_capacity"."max_size" IS '单个配置大小上限,单位为字节,0表示使用默认值';
    COMMENT ON COLUMN "NACOS"."tenant_capacity"."quota" IS '配额,0表示使用默认值';
    COMMENT ON COLUMN "NACOS"."tenant_capacity"."tenant_id" IS 'Tenant ID';
    COMMENT ON COLUMN "NACOS"."tenant_capacity"."usage" IS '使用量';
    
    
    CREATE TABLE "NACOS"."tenant_info"
    (
    "id" BIGINT IDENTITY(3, 1) NOT NULL,
    "kp" VARCHAR(128) NOT NULL,
    "tenant_id" VARCHAR(128) DEFAULT '',
    "tenant_name" VARCHAR(128) DEFAULT '',
    "tenant_desc" VARCHAR(256),
    "create_source" VARCHAR(32),
    "gmt_create" BIGINT NOT NULL,
    "gmt_modified" BIGINT NOT NULL,
    NOT CLUSTER PRIMARY KEY("id"),
    CONSTRAINT "uk_tenant_info_kptenantid" UNIQUE("kp", "tenant_id")) STORAGE(ON "NACOS", CLUSTERBTR) ;
    
    COMMENT ON TABLE "NACOS"."tenant_info" IS 'tenant_info';
    COMMENT ON COLUMN "NACOS"."tenant_info"."create_source" IS 'create_source';
    COMMENT ON COLUMN "NACOS"."tenant_info"."gmt_create" IS '创建时间';
    COMMENT ON COLUMN "NACOS"."tenant_info"."gmt_modified" IS '修改时间';
    COMMENT ON COLUMN "NACOS"."tenant_info"."id" IS 'id';
    COMMENT ON COLUMN "NACOS"."tenant_info"."kp" IS 'kp';
    COMMENT ON COLUMN "NACOS"."tenant_info"."tenant_desc" IS 'tenant_desc';
    COMMENT ON COLUMN "NACOS"."tenant_info"."tenant_id" IS 'tenant_id';
    COMMENT ON COLUMN "NACOS"."tenant_info"."tenant_name" IS 'tenant_name';
    
    
    CREATE  INDEX "idx_tenant_id" ON "NACOS"."tenant_info"("tenant_id" ASC) STORAGE(ON "NACOS", CLUSTERBTR) ;
    
    CREATE TABLE "NACOS"."users"
    (
    "username" VARCHAR(50) NOT NULL,
    "password" VARCHAR(500) NOT NULL,
    "enabled" TINYINT NOT NULL,
    NOT CLUSTER PRIMARY KEY("username")) STORAGE(ON "NACOS", CLUSTERBTR) ;
    insert into "NACOS"."users"("username", "password", "enabled") VALUES('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259
    • 260
    • 261
    • 262
    • 263
    • 264
    • 265
    • 266
    • 267
    • 268
    • 269
    • 270
    • 271
    • 272
    • 273
    • 274
    • 275
    • 276
    • 277
    • 278
    • 279
    • 280
    • 281
    • 282
    • 283
    • 284
    • 285
    • 286
    • 287
    • 288
    • 289
    • 290
    • 291
    • 292
    • 293
    1. 启动Nacos.java,访问http://localhost:8848/nacos
      在这里插入图片描述
    2. 源码打包:
      (1).跳过格式校验:父工程pom.xml中注掉maven-pmd-plugin,maven-checkstyle-plugin相关控件配置
      (2).跳过认证:父工程pom.xml中注掉apache-rat-plugin控件配置
      (3).在idea终端执行打包命令

    mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
    在这里插入图片描述
    打包成功后的压缩包是在distribution模块下的target下:

    在这里插入图片描述

  • 相关阅读:
    区块链工作原理(区块链治理系统、比特币、以太坊、智能合约)
    树莓派4B无屏幕连接Wi-Fi/启用ssh/创建用户
    【Axure高保真原型】3D圆柱图_中继器版
    Vue学习:计算属性
    人工智能学习:NMIST数据分类识别-CNN网络(3)
    算法:滑动窗口
    镜像方式如何部署项目
    如何提高课堂教学效率?西安所高校出招了
    Failed to connect to bitbucket.org port 443 错误原因, 解决办法
    VulnHub ch4inrulz: 1.0.1
  • 原文地址:https://blog.csdn.net/Answer0902/article/details/127851278