> 技术文档 > 银河麒麟arm服务器部署mysql5.7.43+nacos2.0.3_aarch64 内网部署nacos

银河麒麟arm服务器部署mysql5.7.43+nacos2.0.3_aarch64 内网部署nacos


一、部署简介 

考虑到国产化内网离线部署,故编写这一部署博客,仅供参考,有问题可以评论区探讨

部署服务器:银河麒麟ky10-aarch64

部署环境:内网离线环境

部署内容:mysql5.7.43+nacos2.0.3

二、部署准备

1.docker安装

考虑国产化项目离线部署,这里提供一个离线安装的快捷方式

docker离线安装包地址:Index of linux/static/stable/

根据部署服务器操作系统架构选择

uname -a

Linux zgc-erp.novalocal 4.19.90-24.4.v2101.ky10.aarch64 #1 SMP Mon May 24 14:45:37 CST 2021 aarch64 aarch64 aarch64 GNU/Linux

这里是银河麒麟arm服务器,点击aarch64进去下载

尽量安装高版本的,避免扫描出漏洞进行修复,很麻烦

这里附带一个安装shell脚本,仅供参考,不同系统环境可能需要更改某些命令或路径

install_docker.sh

#!/bin/bash
setenforce 0
systemctl disable firewalld --now
tar -xvf docker-27.3.1.tgz
cp -p docker/* /usr/bin
mkdir -p  /home/.docker
cat > /etc/systemd/system/docker.service << EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1 --data-root /home/.docker
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
EOF
chmod +x /etc/systemd/system/docker.service
cat >> /etc/sysctl.conf << EOF
net.ipv4.ip_forward = 1
EOF
sysctl -p 
systemctl daemon-reload
systemctl enable docker.service --now
mkdir /etc/docker
cat > /etc/docker/daemon.json << EOF
{
    \"log-driver\": \"json-file\",
    \"log-opts\": {
        \"max-size\": \"20m\",
        \"max-file\": \"3\"
    }
}
EOF
systemctl restart docker
docker --version
 

 

注意:--data-root /home/.docker,在 Docker 17.05 及以后的版本中,推荐使用 --data-root 配置项,--graph 选项在新版本中已经被弃用,如果你使用的docker是17.05之前的版本,请改为--graph,之所以修改docker的数据目录,是因为默认目录在/var/lib/docker,如果你部署的服务器,系统盘给的特别少,运行一段时间会导致系统盘爆满,尽量放在存储空间大的磁盘下面,一般是数据盘/home!!!

2.docker-compose安装

拉取地址:Tags · docker/compose · GitHub

这里我们下载aarch64的包,上传服务器后 

cp -rp   docker-compose-linux-aarch64    /usr/local/bin/docker-compose
chmod 755   /usr/local/bin/docker-compose
docker-compose -v

​3.镜像查找和拉取

镜像:
bitnami/mysql:5.7.43-debian-11-r37
zhusaidong/nacos-server-m1:2.0.3

备注:需要去dockerhub上面找第三方镜像,mysql5.7.43和nacos2.0.3 官方没有arm64镜像

4.部署目录结构

docker-composy.yml
init.d/nacos_mysql.sql

三、部署内容  

cat docker-compose.yml

version: \'3.8\'
services:
  mysql:
   image: bitnami/mysql:5.7.43-debian-11-r37
   container_name: mysql
   ports:
     - \"33066:3306\"
   environment:
     - MYSQL_ROOT_PASSWORD=2024mysql963
     - MYSQL_DATABASE=nacos_config
     - MYSQL_USER=nacos
     - MYSQL_PASSWORD=Nacosmysql963
     - LANG=C.UTF-8
     - TZ=Asia/Shanghai
   volumes:
     - ./init.d:/docker-entrypoint-initdb.d
     - mysql_data:/bitnami/mysql/data
     - mysql_log:/opt/bitnami/mysql/logs/
   restart: unless-stopped
  nacos:
   image: zhusaidong/nacos-server-m1:2.0.3
   container_name: nacos
   ports:
     - \"0.0.0.0:8848:8848\"
     - \"0.0.0.0:9848:9848\"
     - \"0.0.0.0:9849:9849\"
   environment:
     - LANG=C.UTF-8
     - TZ=Asia/Shanghai
     - SPRING_DATASOURCE_PLATFORM=mysql
     - MYSQL_SERVICE_HOST=192.168.0.1
     - MYSQL_SERVICE_PORT=33066
     - MYSQL_SERVICE_DB_NAME=nacos_config
     - MYSQL_SERVICE_USER=nacos
     - MYSQL_SERVICE_PASSWORD=Nacosmysql963
     - MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true
     - JVM_XMS=512m
     - JVM_XMX=512m
     - JVM_XMN=192m
     - MODE=standalone
   volumes:
     - nacos_data:/home/nacos
   depends_on:
     - mysql
   restart: unless-stopped

volumes:
  mysql_data:
  mysql_log:
  nacos_data:

cat init.d/nacos_mysql.sql              nacos初始化sql

     

/******************************************/
/*   表名称 = 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(128) DEFAULT NULL COMMENT \'group_id\',
  `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 COMMENT \'app_name\',
  `tenant_id` varchar(128) DEFAULT \'\' COMMENT \'租户字段\',
  `c_desc` varchar(256) DEFAULT NULL COMMENT \'configuration description\',
  `c_use` varchar(64) DEFAULT NULL COMMENT \'configuration usage\',
  `effect` varchar(64) DEFAULT NULL COMMENT \'配置生效的描述\',
  `type` varchar(64) DEFAULT NULL COMMENT \'配置的类型\',
  `c_schema` text COMMENT \'配置的模式\',
  `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\';

/******************************************/
/*   表名称 = 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(128) 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 COMMENT \'app_name\',
  `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=\'增加租户字段\';

/******************************************/
/*   表名称 = 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\';

/******************************************/
/*   表名称 = 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\';

/******************************************/
/*   表名称 = 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 COMMENT \'nid, 自增长标识\',
  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\';

/******************************************/
/*   表名称 = 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容量信息表\';

/******************************************/
/*   表名称 = his_config_info              */
/******************************************/
CREATE TABLE `his_config_info` (
  `id` bigint(20) unsigned NOT NULL COMMENT \'id\',
  `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT \'nid, 自增标识\',
  `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\',
  `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\',
  `op_type` char(10) DEFAULT NULL COMMENT \'operation type\',
  `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=\'多租户改造\';

/******************************************/
/*   表名称 = 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 COMMENT \'username\',
    `password` varchar(500) NOT NULL COMMENT \'password\',
    `enabled` boolean NOT NULL COMMENT \'enabled\'
);

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

CREATE TABLE `permissions` (
    `role` varchar(50) NOT NULL COMMENT \'role\',
    `resource` varchar(255) NOT NULL COMMENT \'resource\',
    `action` varchar(8) NOT NULL COMMENT \'action\',
    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\');

四、启动

docker-compose up -d mysql
验证mysql端口和库,以及挂载数据路径和日志
docker-compose up -d nacos
测试端口,查看日志

五、访问修改密码

浏览器web访问地址:http://192.168.0.1:8848/nacos

默认用户:nacos

默认密码:nacos

备注:访问自己部署服务器的 ip+端口 ,后面url记得加 /nacos ,密码需要界面修改,最好修改为复杂密码,避免微服务配置信息泄露!!!

部署成功示例截图: