银河麒麟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 ,密码需要界面修改,最好修改为复杂密码,避免微服务配置信息泄露!!!
部署成功示例截图: