数据库脚本

  • 如果你使用自定义数据库,第一次启动Nacos前需要手动初始化 数据库脚本 . ```sql /*
    • 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. */

/**/ / 数据库全名 = nacos_config / / 表名称 = config_info / /**/ CREATE TABLE config_info ( id bigint(20) NOT NULL AUTO_INCREMENT COMMENT ‘id’, data_id varchar(255) NOT NULL COMMENT ‘data_id’, group_id varchar(255) DEFAULT NULL, content longtext NOT NULL COMMENT ‘content’, md5 varchar(32) DEFAULT NULL COMMENT ‘md5’, gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’, gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘修改时间’, src_user text COMMENT ‘source user’, src_ip varchar(50) DEFAULT NULL COMMENT ‘source ip’, app_name varchar(128) DEFAULT NULL, tenant_id varchar(128) DEFAULT ‘’ COMMENT ‘租户字段’, c_desc varchar(256) DEFAULT NULL, c_use varchar(64) DEFAULT NULL, effect varchar(64) DEFAULT NULL, type varchar(64) DEFAULT NULL, c_schema text, encrypted_data_key text NOT NULL COMMENT ‘秘钥’, PRIMARY KEY (id), UNIQUE KEY uk_configinfo_datagrouptenant (data_id,group_id,tenant_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=’config_info’;

/**/ / 数据库全名 = nacos_config / / 表名称 = config_info_aggr / /**/ CREATE TABLE config_info_aggr ( id bigint(20) NOT NULL AUTO_INCREMENT COMMENT ‘id’, data_id varchar(255) NOT NULL COMMENT ‘data_id’, group_id varchar(255) NOT NULL COMMENT ‘group_id’, datum_id varchar(255) NOT NULL COMMENT ‘datum_id’, content longtext NOT NULL COMMENT ‘内容’, gmt_modified datetime NOT NULL COMMENT ‘修改时间’, app_name varchar(128) DEFAULT NULL, tenant_id varchar(128) DEFAULT ‘’ COMMENT ‘租户字段’, PRIMARY KEY (id), UNIQUE KEY uk_configinfoaggr_datagrouptenantdatum (data_id,group_id,tenant_id,datum_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=’增加租户字段’;

/**/ / 数据库全名 = nacos_config / / 表名称 = config_info_beta / /**/ CREATE TABLE config_info_beta ( id bigint(20) NOT NULL AUTO_INCREMENT COMMENT ‘id’, data_id varchar(255) NOT NULL COMMENT ‘data_id’, group_id varchar(128) NOT NULL COMMENT ‘group_id’, app_name varchar(128) DEFAULT NULL COMMENT ‘app_name’, content longtext NOT NULL COMMENT ‘content’, beta_ips varchar(1024) DEFAULT NULL COMMENT ‘betaIps’, md5 varchar(32) DEFAULT NULL COMMENT ‘md5’, gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’, gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘修改时间’, src_user text COMMENT ‘source user’, src_ip varchar(50) DEFAULT NULL COMMENT ‘source ip’, tenant_id varchar(128) DEFAULT ‘’ COMMENT ‘租户字段’, encrypted_data_key text NOT NULL COMMENT ‘秘钥’, PRIMARY KEY (id), UNIQUE KEY uk_configinfobeta_datagrouptenant (data_id,group_id,tenant_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=’config_info_beta’;

/**/ / 数据库全名 = nacos_config / / 表名称 = config_info_tag / /**/ CREATE TABLE config_info_tag ( id bigint(20) NOT NULL AUTO_INCREMENT COMMENT ‘id’, data_id varchar(255) NOT NULL COMMENT ‘data_id’, group_id varchar(128) NOT NULL COMMENT ‘group_id’, tenant_id varchar(128) DEFAULT ‘’ COMMENT ‘tenant_id’, tag_id varchar(128) NOT NULL COMMENT ‘tag_id’, app_name varchar(128) DEFAULT NULL COMMENT ‘app_name’, content longtext NOT NULL COMMENT ‘content’, md5 varchar(32) DEFAULT NULL COMMENT ‘md5’, gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’, gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘修改时间’, src_user text COMMENT ‘source user’, src_ip varchar(50) DEFAULT NULL COMMENT ‘source ip’, PRIMARY KEY (id), UNIQUE KEY uk_configinfotag_datagrouptenanttag (data_id,group_id,tenant_id,tag_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=’config_info_tag’;

/**/ / 数据库全名 = nacos_config / / 表名称 = config_tags_relation / /**/ CREATE TABLE config_tags_relation ( id bigint(20) NOT NULL COMMENT ‘id’, tag_name varchar(128) NOT NULL COMMENT ‘tag_name’, tag_type varchar(64) DEFAULT NULL COMMENT ‘tag_type’, data_id varchar(255) NOT NULL COMMENT ‘data_id’, group_id varchar(128) NOT NULL COMMENT ‘group_id’, tenant_id varchar(128) DEFAULT ‘’ COMMENT ‘tenant_id’, nid bigint(20) NOT NULL AUTO_INCREMENT, PRIMARY KEY (nid), UNIQUE KEY uk_configtagrelation_configidtag (id,tag_name,tag_type), KEY idx_tenant_id (tenant_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=’config_tag_relation’;

/**/ / 数据库全名 = nacos_config / / 表名称 = group_capacity / /**/ CREATE TABLE group_capacity ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘主键ID’, group_id varchar(128) NOT NULL DEFAULT ‘’ COMMENT ‘Group ID,空字符表示整个集群’, quota int(10) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘配额,0表示使用默认值’, usage int(10) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘使用量’, max_size int(10) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘单个配置大小上限,单位为字节,0表示使用默认值’, max_aggr_count int(10) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘聚合子配置最大个数,,0表示使用默认值’, max_aggr_size int(10) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值’, max_history_count int(10) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘最大变更历史数量’, gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’, gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘修改时间’, PRIMARY KEY (id), UNIQUE KEY uk_group_id (group_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=’集群、各Group容量信息表’;

/**/ / 数据库全名 = nacos_config / / 表名称 = his_config_info / /**/ CREATE TABLE his_config_info ( id bigint(64) unsigned NOT NULL, nid bigint(20) unsigned NOT NULL AUTO_INCREMENT, data_id varchar(255) NOT NULL, group_id varchar(128) NOT NULL, app_name varchar(128) DEFAULT NULL COMMENT ‘app_name’, content longtext NOT NULL, md5 varchar(32) DEFAULT NULL, gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, src_user text, src_ip varchar(50) DEFAULT NULL, op_type char(10) DEFAULT NULL, tenant_id varchar(128) DEFAULT ‘’ COMMENT ‘租户字段’, encrypted_data_key text NOT NULL COMMENT ‘秘钥’, PRIMARY KEY (nid), KEY idx_gmt_create (gmt_create), KEY idx_gmt_modified (gmt_modified), KEY idx_did (data_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=’多租户改造’;

/**/ / 数据库全名 = nacos_config / / 表名称 = tenant_capacity / /**/ CREATE TABLE tenant_capacity ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘主键ID’, tenant_id varchar(128) NOT NULL DEFAULT ‘’ COMMENT ‘Tenant ID’, quota int(10) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘配额,0表示使用默认值’, usage int(10) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘使用量’, max_size int(10) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘单个配置大小上限,单位为字节,0表示使用默认值’, max_aggr_count int(10) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘聚合子配置最大个数’, max_aggr_size int(10) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值’, max_history_count int(10) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘最大变更历史数量’, gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’, gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘修改时间’, PRIMARY KEY (id), UNIQUE KEY uk_tenant_id (tenant_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=’租户容量信息表’;

CREATE TABLE tenant_info ( id bigint(20) NOT NULL AUTO_INCREMENT COMMENT ‘id’, kp varchar(128) NOT NULL COMMENT ‘kp’, tenant_id varchar(128) default ‘’ COMMENT ‘tenant_id’, tenant_name varchar(128) default ‘’ COMMENT ‘tenant_name’, tenant_desc varchar(256) DEFAULT NULL COMMENT ‘tenant_desc’, create_source varchar(32) DEFAULT NULL COMMENT ‘create_source’, gmt_create bigint(20) NOT NULL COMMENT ‘创建时间’, gmt_modified bigint(20) NOT NULL COMMENT ‘修改时间’, PRIMARY KEY (id), UNIQUE KEY uk_tenant_info_kptenantid (kp,tenant_id), KEY idx_tenant_id (tenant_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=’tenant_info’;

CREATE TABLE users ( username varchar(50) NOT NULL PRIMARY KEY, password varchar(500) NOT NULL, enabled boolean NOT NULL );

CREATE TABLE roles ( username varchar(50) NOT NULL, role varchar(50) NOT NULL, UNIQUE INDEX idx_user_role (username ASC, role ASC) USING BTREE );

CREATE TABLE permissions ( role varchar(50) NOT NULL, resource varchar(255) NOT NULL, action varchar(8) NOT NULL, UNIQUE INDEX uk_role_permission (role,resource,action) USING BTREE );

INSERT INTO users (username, password, enabled) VALUES (‘nacos’, ‘$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu’, TRUE);

INSERT INTO roles (username, role) VALUES (‘nacos’, ‘ROLE_ADMIN’);

  1. <a name="CO8G7"></a>
  2. ### 部署模式:`standalone + mysql`
  3. - 创建`docker-compose`的执行文件`standalone-mysql-8.yaml`
  4. ```shell
  5. version: "2"
  6. services:
  7. nacos:
  8. image: nacos/nacos-server:v2.1.0
  9. container_name: nacos-standalone-mysql
  10. environment:
  11. - PREFER_HOST_MODE=hostname
  12. - MODE=standalone
  13. - SPRING_DATASOURCE_PLATFORM=mysql
  14. - MYSQL_SERVICE_HOST=mysql
  15. - MYSQL_SERVICE_DB_NAME=nacos
  16. - MYSQL_SERVICE_PORT=3306
  17. - MYSQL_SERVICE_USER=nacos
  18. - MYSQL_SERVICE_PASSWORD=nacos
  19. - MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
  20. volumes:
  21. - ./standalone-logs/:/home/nacos/logs
  22. - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
  23. ports:
  24. - "8848:8848"
  25. - "9848:9848"
  26. - "9555:9555"
  27. depends_on:
  28. - mysql
  29. restart: always
  30. mysql:
  31. container_name: mysql
  32. image: mysql:8.0.29
  33. environment:
  34. - MYSQL_ROOT_PASSWORD=root
  35. - MYSQL_DATABASE=nacos
  36. - MYSQL_USER=nacos
  37. - MYSQL_PASSWORD=nacos
  38. volumes:
  39. - ./mysql:/var/lib/mysql
  40. ports:
  41. - "3306:3306"
  42. restart: always

快速开始

  • docker-compose -f example/standalone-mysql-8.yaml up
  • docker-compose ps
    • image.png
  • 在部署的MySQL容器中执行nacos-mysql.sql数据库脚本文件
    • image.png
  • docker-compose logs -f
    • image.png
  • 打开浏览器,输入[http://127.0.0.1:8848/nacos/](http://127.0.0.1:8848/nacos/)
    • image.png
  • 打开浏览器,输入[http://127.0.0.1:8848/nacos/actuator](http://127.0.0.1:8848/nacos/actuator)
    • image.png