nacos适配达梦数据库

一、下载源码

        源码我直接下载gitee上nacos2.2.3的,具体链接:https://gitee.com/mirrors/Nacos/tree/2.2.3,具体如下图:

二、集成达梦数据库驱动

        解压源码包,用idea打开源码,等idea和maven编译完成,若是Jdk8的话,最好安装300以上的小版本。

        获取达梦数据库驱动,驱动包在安装目录的jdbc下,该驱动包是windows安装包里勾选了驱动,才会生成这些驱动。具体如下图所示:

        将驱动包复制到 nacos-config、nacos-naming 两个模块的resources/lib目录下,并添加依赖:

<dependency>
<groupId>com.dameng</groupId>
<artifactId>Dm8JdbcDriver18</artifactId>
<version>1.8</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/DmJdbcDriver18.jar</systemPath>
</dependency>

三、修改启动配置

        修改nacos-console模块的application.properties,具体如下:

其中,url参数详见链接:DM JDBC 编程指南 | 达梦技术文档

四、达梦数据库初始化SQL

        在达梦数据库运行下面SQL:

-- 创建表空间
CREATE TABLESPACE  "NACOS" DATAFILE 'NACOS.DBF' SIZE 300 autoextend on maxsize 67108863 CACHE = NORMAL;
-- 创建用户
CREATE USER "NACOS" IDENTIFIED BY "NACOS*12345678" LIMIT PASSWORD_LOCK_TIME 1, PASSWORD_GRACE_TIME 10 DEFAULT TABLESPACE "NACOS";
-- 给用户授权
GRANT "RESOURCE","PUBLIC","DBA","VTI" TO "NACOS";

-- 创建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")) ;

COMMENT ON TABLE "NACOS"."CONFIG_INFO" IS 'config_info';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO"."ID" IS 'id';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO"."DATA_ID" IS 'data_id';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO"."CONTENT" IS 'content';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO"."MD5" IS 'md5';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO"."GMT_CREATE" IS '创建时间';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO"."GMT_MODIFIED" IS '修改时间';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO"."SRC_USER" IS 'source user';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO"."SRC_IP" IS 'source ip';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO"."TENANT_ID" IS '租户字段';


CREATE UNIQUE  INDEX "INDEX16097400477400" ON "NACOS"."CONFIG_INFO"("ID" ASC) ;

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")) ;

COMMENT ON TABLE "NACOS"."CONFIG_INFO_AGGR" IS '增加租户字段';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_AGGR"."ID" IS 'id';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_AGGR"."DATA_ID" IS 'data_id';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_AGGR"."GROUP_ID" IS 'group_id';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_AGGR"."DATUM_ID" IS 'datum_id';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_AGGR"."CONTENT" IS '内容';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_AGGR"."GMT_MODIFIED" IS '修改时间';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_AGGR"."TENANT_ID" IS '租户字段';


CREATE UNIQUE  INDEX "INDEX16097305729100" ON "NACOS"."CONFIG_INFO_AGGR"("ID" ASC) ;

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")) ;

COMMENT ON TABLE "NACOS"."CONFIG_INFO_BETA" IS 'config_info_beta';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_BETA"."ID" IS 'id';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_BETA"."DATA_ID" IS 'data_id';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_BETA"."GROUP_ID" IS 'group_id';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_BETA"."APP_NAME" IS 'app_name';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_BETA"."CONTENT" IS 'content';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_BETA"."BETA_IPS" IS 'betaIps';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_BETA"."MD5" IS 'md5';
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"."SRC_USER" IS 'source user';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_BETA"."SRC_IP" IS 'source ip';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_BETA"."TENANT_ID" IS '租户字段';


CREATE UNIQUE  INDEX "INDEX16097203229000" ON "NACOS"."CONFIG_INFO_BETA"("ID" ASC) ;

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")) ;

COMMENT ON TABLE "NACOS"."CONFIG_INFO_TAG" IS 'config_info_tag';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_TAG"."ID" IS 'id';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_TAG"."DATA_ID" IS 'data_id';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_TAG"."GROUP_ID" IS 'group_id';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_TAG"."TENANT_ID" IS 'tenant_id';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_TAG"."TAG_ID" IS 'tag_id';
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"."MD5" IS 'md5';
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"."SRC_USER" IS 'source user';
COMMENT ON COLUMN "NACOS"."CONFIG_INFO_TAG"."SRC_IP" IS 'source ip';


CREATE UNIQUE  INDEX "INDEX16096985471400" ON "NACOS"."CONFIG_INFO_TAG"("ID" ASC) ;

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")) ;

COMMENT ON TABLE "NACOS"."CONFIG_TAGS_RELATION" IS 'config_tag_relation';
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"."DATA_ID" IS 'data_id';
COMMENT ON COLUMN "NACOS"."CONFIG_TAGS_RELATION"."GROUP_ID" IS 'group_id';
COMMENT ON COLUMN "NACOS"."CONFIG_TAGS_RELATION"."TENANT_ID" IS 'tenant_id';


CREATE  INDEX "INDEX16096890650200" ON "NACOS"."CONFIG_TAGS_RELATION"("TENANT_ID" ASC) ;
CREATE UNIQUE  INDEX "INDEX16096909541100" ON "NACOS"."CONFIG_TAGS_RELATION"("NID" ASC) ;

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)) ;

COMMENT ON TABLE "NACOS"."GROUP_CAPACITY" IS '集群、各Group容量信息表';
COMMENT ON COLUMN "NACOS"."GROUP_CAPACITY"."ID" IS '主键ID';
COMMENT ON COLUMN "NACOS"."GROUP_CAPACITY"."GROUP_ID" IS 'Group ID,空字符表示整个集群';
COMMENT ON COLUMN "NACOS"."GROUP_CAPACITY"."QUOTA" IS '配额,0表示使用默认值';
COMMENT ON COLUMN "NACOS"."GROUP_CAPACITY"."USAGE" IS '使用量';
COMMENT ON COLUMN "NACOS"."GROUP_CAPACITY"."MAX_SIZE" IS '单个配置大小上限,单位为字节,0表示使用默认值';
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"."GMT_CREATE" IS '创建时间';
COMMENT ON COLUMN "NACOS"."GROUP_CAPACITY"."GMT_MODIFIED" IS '修改时间';


CREATE UNIQUE  INDEX "INDEX16096746763900" ON "NACOS"."GROUP_CAPACITY"("ID" ASC) ;

CREATE TABLE "NACOS"."HIS_CONFIG_INFO"
(
    "ID" BIGINT 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")) ;

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"."TENANT_ID" IS '租户字段';


CREATE  INDEX "IDX_GMT_CREATE" ON "NACOS"."HIS_CONFIG_INFO"("GMT_CREATE" ASC) ;
CREATE  INDEX "IDX_DID" ON "NACOS"."HIS_CONFIG_INFO"("DATA_ID" ASC) ;
CREATE  INDEX "IDX_GMT_MODIFIED" ON "NACOS"."HIS_CONFIG_INFO"("GMT_MODIFIED" ASC) ;
CREATE UNIQUE  INDEX "INDEX16096449256900" ON "NACOS"."HIS_CONFIG_INFO"("NID" ASC) ;

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")) ;

CREATE TABLE "NACOS"."ROLES"
(
    "USERNAME" VARCHAR(50) NOT NULL,
    "ROLE" VARCHAR(50) NOT NULL,
    CONSTRAINT "IDX_USER_ROLE" UNIQUE("USERNAME", "ROLE")) ;

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)) ;

COMMENT ON TABLE "NACOS"."TENANT_CAPACITY" IS '租户容量信息表';
COMMENT ON COLUMN "NACOS"."TENANT_CAPACITY"."ID" IS '主键ID';
COMMENT ON COLUMN "NACOS"."TENANT_CAPACITY"."TENANT_ID" IS 'Tenant ID';
COMMENT ON COLUMN "NACOS"."TENANT_CAPACITY"."QUOTA" IS '配额,0表示使用默认值';
COMMENT ON COLUMN "NACOS"."TENANT_CAPACITY"."USAGE" IS '使用量';
COMMENT ON COLUMN "NACOS"."TENANT_CAPACITY"."MAX_SIZE" IS '单个配置大小上限,单位为字节,0表示使用默认值';
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"."GMT_CREATE" IS '创建时间';
COMMENT ON COLUMN "NACOS"."TENANT_CAPACITY"."GMT_MODIFIED" IS '修改时间';


CREATE UNIQUE  INDEX "INDEX16096046055000" ON "NACOS"."TENANT_CAPACITY"("ID" ASC) ;

CREATE TABLE "NACOS"."TENANT_INFO"
(
    "ID" BIGINT IDENTITY(1, 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")) ;

COMMENT ON TABLE "NACOS"."TENANT_INFO" IS 'tenant_info';
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_ID" IS 'tenant_id';
COMMENT ON COLUMN "NACOS"."TENANT_INFO"."TENANT_NAME" IS 'tenant_name';
COMMENT ON COLUMN "NACOS"."TENANT_INFO"."TENANT_DESC" IS 'tenant_desc';
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 '修改时间';


CREATE  INDEX "IDX_TENANT_ID" ON "NACOS"."TENANT_INFO"("TENANT_ID" ASC) ;
CREATE UNIQUE  INDEX "INDEX16095846853300" ON "NACOS"."TENANT_INFO"("ID" ASC) ;

CREATE TABLE "NACOS"."USERS"
(
    "USERNAME" VARCHAR(50) NOT NULL,
    "PASSWORD" VARCHAR(500) NOT NULL,
    "ENABLED" TINYINT NOT NULL,
    NOT CLUSTER PRIMARY KEY("USERNAME")) ;
CREATE UNIQUE  INDEX "PRIMARY" ON "NACOS"."USERS"("USERNAME" ASC) ;
INSERT INTO nacos.users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);
INSERT INTO nacos.roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
commit;

        这些sql可以放到distribution\conf\dm-schema.sql中,后续打包能看到该sql,如图:

五、新增达梦数据库Mapper文件

        将nacos-datasource-plugin里的mysql的mapper文件复制到新的dm文件夹下改名,并修改将相应的常量和配置,具体如下:

六、启动Nacos

        找到 com.alibaba.nacos.Nacos类,启动即可,或者加入 -Dnacos.standalone=true 参数单机启动,集群启动需要在 用户文件夹下的 nacos/conf 下放置 cluster.conf 文件。

        另外注意nacos的url一定不能写错,否则报:Caused by: java.lang.IllegalStateException: No DataSource set

七、打包并运行Nacos

        配置环境变量,MAVEN_HOME和JAVA_HOME,以及在Path中添加bin路径。具体如下:

        接着到nacos项目路径下运行:

mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U

或者:mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  -Dcheckstyle.skip

成功后,nacos包会在 Nacos-2.2.3\distribution\target 目录下:

        将新打包的nacos-server-2.2.3.zip复制解压,如下图:

        到nacos/conf目录下修改 application.properties,具体参考源码的配置文件。

        在nacos/bin目录下cmd运行:startup.cmd -m standalone。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/142137.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS开发(三):ArkTS基础

1、ArkTS演进 Mozilla创建了JS ---> Microsoft创建了TS ----> Huawei进一步推出ArkTS 从最初的基础逻辑交互&#xff08;JS&#xff09;,到具备类型系统的高效工程开发&#xff08;TS&#xff09;,再到融合声明式UI、多维状态管理等丰富的应用开发能力&…

SDL2 播放视频数据(YUV420P)

1.简介 这里以常用的视频原始数据YUV420P为例&#xff0c;展示视频的播放。 SDL播放视频的流程如下&#xff1a; 初始化SDL&#xff1a;SDL_Init();创建窗口&#xff1a;SDL_CreateWindow();创建渲染器&#xff1a;SDL_CreateRenderer();创建纹理&#xff1a;SDL_CreateText…

ESP32 Arduino引脚分配参考:您应该使用哪些 GPIO 引脚?

ESP32 芯片有 48 个引脚&#xff0c;具有多种功能。并非所有 ESP32 开发板中的所有引脚都暴露出来&#xff0c;有些引脚无法使用。 关于如何使用 ESP32 GPIO 有很多问题。您应该使用什么引脚&#xff1f;您应该避免在项目中使用哪些引脚&#xff1f;这篇文章旨在成为 ESP32 GP…

Spark3.0中的AOE、DPP和Hint增强

1 Spark3.0 AQE Spark 在 3.0 版本推出了 AQE&#xff08;Adaptive Query Execution&#xff09;&#xff0c;即自适应查询执行。AQE 是 Spark SQL 的一种动态优化机制&#xff0c;在运行时&#xff0c;每当 Shuffle Map 阶段执行完毕&#xff0c;AQE 都会结合这个阶段的统计信…

Machine-Level Programming III:Procedure

Machine-Level Programming III:Procedure Today Procedures Mechanisms(机制)Stack StructureCalling Conventions(调用规则) Passing control(传递控制)Passing data(传递数据)Managing local data Illustration of Recursion(递归说明) 补充术语&#xff1a; Program 程序…

Spring后端HttpClient实现微信小程序登录

这是微信官方提供的时序图。我们需要关注的是前后端的交互&#xff0c;以及服务端如何收发网络请求。 小程序端 封装基本网络请求 我们先封装一个基本的网络请求。 const baseUrl"localhost:8080" export default{sendRequsetAsync } /* e url&#xff1a;目标页…

【ARM Trace32(劳特巴赫) 使用介绍 4 - Trace32 Discovery 详细介绍】

请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】 文章目录 1.1 SYS.Detect1.2 AHBAPn/AXIAPnAPBAPn.Base1.1 SYS.Detect 在 TRACE32 中, SYS.Detect 是一个用来检测目标系统配置的命令。 当你执行 SYS.Detect DAP 命令时,TRACE32 将自动检测和识别目标系统上的 ARM De…

python爬虫代理ip关于设置proxies的问题

目录 前言 一、什么是代理IP? 二、为什么需要设置代理IP? 三、如何设置代理IP? 四、完整代码 总结 前言 在进行Python爬虫开发时&#xff0c;经常会遇到被封IP或者频繁访问同一网站被限制访问等问题&#xff0c;这时&#xff0c;使用代理IP就可以避免这些问题&#x…

CSS特效008:鼠标悬浮文字跳动动画效果

总第 010 篇文章&#xff0c; 查看专栏目录 本专栏记录的是经常使用的CSS示例与技巧&#xff0c;主要包含CSS布局&#xff0c;CSS特效&#xff0c;CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点&#xff0c;CSS特效主要是一些动画示例&#xff0c;CSS花…

【算法与数据结构】78、90、LeetCode子集I, II

文章目录 一、题目二、78.子集三、90.子集II三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、78.子集 思路分析&#xff1a;【算法与数据结构】77、LeetCode组合。本题可以参考77题的组合问题代码&#xff0…

路由器的结构以及工作原理

目录 路由器的结构 交换结构三种常用的交换方式 1.通过存储器 2.通过总线 3.通过纵横交换结构&#xff08;crossbar switch fabric&#xff09; 路由器的结构 路由器结构可划分为两大部分&#xff1a;路由选择部分&#xff0c;分组转发部分 路由选择部分也叫做控制部分&…

java高并发系列-第2天:并发级别

这是java高并发系列第2篇文章&#xff0c;一个月&#xff0c;咱们一起啃下java高并发&#xff0c;欢迎留言打卡&#xff0c;一起坚持一个月&#xff0c;拿下java高并发。 由于临界区的存在&#xff0c;多线程之间的并发必须受到控制。根据控制并发的策略&#xff0c;我们可以把…

P6入门:项目初始化7-项目详情之代码/分类码Code

前言 使用项目详细信息查看和编辑有关所选项目的详细信息&#xff0c;在项目创建完成后&#xff0c;初始化项目是一项非常重要的工作&#xff0c;涉及需要设置的内容包括项目名&#xff0c;ID,责任人&#xff0c;日历&#xff0c;预算&#xff0c;资金&#xff0c;分类码等等&…

排序算法之-快速

算法原理 丛待排序的数列中选择一个基准值&#xff0c;通过遍历数列&#xff0c;将数列分成两个子数列&#xff1a;小于基准值数列、大于基准值数列&#xff0c;准确来说还有个子数列&#xff1a;等于基准值即&#xff1a; 算法图解 选出基准元素pivot&#xff08;可以选择…

P36[11-1]SPI通信协议

SPI相比于IIC的优缺点: 1.SPI传输速度快(IIC高电平驱动能力较弱,因此无法高速传输) 2.使用简单 3.通信线多 SCK(SCLK,CK,CLK):串行时钟线 MOSI(DO):主机输出,从机输入 MISO(DI): 主机输入,从机输出 SS(NSS,CS):从机选择(有多少个从机,主机就要用几根SS分别与从机连接…

Windows环境下ADB调试——安装adb

一、下载 Windows版本&#xff1a;https://dl.google.com/android/repository/platform-tools-latest-windows.zipMac版本&#xff1a;https://dl.google.com/android/repository/platform-tools-latest-darwin.zipLinux版本&#xff1a;https://dl.google.com/android/reposit…

HTTP服务器——tomcat的安装和使用

文章目录 前言下载tomcattomcat 文件bin 文件夹conf 文件lib 文件log 文件temp 文件webapps 文件work 目录 如何使用 tomcat 前言 前面我们已经学习了应用层协议 HTTP 协议和 HTTP 的改进版——HTTPS&#xff0c;这些协议是我们在写与服务器相关的代码的时候息息相关的&#x…

专访|OpenTiny 社区 Mr 栋:结合兴趣,明确定位,在开源中给自己一些技术性挑战

前言 OpenTiny 开源之夏项目终于迎来了圆满的结局。借此机会&#xff0c;我们采访了 TinyReact 的共建者 Mr 栋同学。 Mr 栋同学是一位热衷于前端技术的开发者&#xff0c;对前端开发充满了激情和热爱。同时他也是一位即将毕业的大四在校生。在 OpenTiny 开源项目中&#xff0…

Java18新增特性

前言 前面的文章&#xff0c;我们对Java9、Java10、Java11、Java12 、Java13、Java14、Java15、Java16、Java17 的特性进行了介绍&#xff0c;对应的文章如下 Java9新增特性 Java10新增特性 Java11新增特性 Java12新增特性 Java13新增特性 Java14新增特性 Java15新增特性 Java…

做一个Sprngboot文件上传-阿里云

概述 这个模块是用来上传头像以及文章封面的&#xff0c;图片的值是一个地址字符串&#xff0c;一般存放在本地或阿里云服务中 1、本地文件上传 我们将文件保存在一个本地的文件夹下&#xff0c;由于可能两个人上传不同图片但是却同名的图片&#xff0c;那么就会一个人的图片就…