1. 裸机 部署
1.0 部署 Java 环境
tar xf jdk-8u351-linux-x64.tar.gz -C /app/tools
ln -s /app/tools/jdk1.8.0_351 /usr/local/jdk
# 配置环境变量
cat >> /etc/profile <<'EOF'
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
EOF
source /etc/profile
1.1 下载解压
# 01. 下载并解压
wget https://github.com/alibaba/nacos/releases/download/2.0.3/nacos-server-2.0.3.tar.gz
tar xf nacos-server-2.0.3.tar.gz -C /usr/local
1.2 部署 MySQL 并导入数据
# 为了方便,使用 docker 启动
# 01. 部署 MySQL
docker run -d \
--name mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD='123456' \
-v /data/mysql:/var/lib/mysql \
--restart=always \
mysql:8.0
# 02. 创建数据库和用户
create database nacos_config charset utf8;
use nacos_config;
source /usr/local/nacos/conf/nacos-mysql.sql
create user nacos@'%' identified with mysql_native_password by '123456';
grant all on nacos_config.* to nacos@'%';
flush privileges;
1.3 修改配置文件
# 01. 进入配置文件目录
cd /usr/local/nacos/nacos/conf/
# 02. 修改配置 application.properties
vim application.properties
server.servlet.contextPath=/nacos
server.port=8848
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.1.10:3306/nacos_mysql?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=nacos
db.password.0=123456
# 关闭权限,可以打开使用
nacos.core.auth.enabled=false
# 03. 修改配置 cluster.conf
cp cluster.conf{.example,}
vim cluster.conf
192.168.0.150:8848
1.4 启动 & 停止
# 启动
cd /usr/local/nacos/bin
./startup.sh -m standalone
# 停止
./shutdown.sh
1.5 访问测试
2. 采用 Docker 部署
2.1 不使用MySQL数据库
docker run \
--name nacos-server \
-e MODE=standalone \
-p 8848:8848 \
-d nacos/nacos-server:v2.0.3
上述方式是最简便的方式启动,但这样的话有一点小瑕疵,nacos所有元数据都会保存在容器内部。倘若容器迁移则nacos元数据则丢失,所以通常我们通常会将nacos元数据保存在mysql中。
2.2 使用 MySQL 数据库版
2.2.1 数据库准备
# 01. 创建初始化目录
mkdir -p /app/nacos/init-mysql
# 02. 创建数据挂载目录
mkdir -p /app/nacos/nacos-mysql
# 03. 修改初始化数据库 文件 (/app/nacos/init-mysql/nacos-mysql.sql)
# 在原文件前加入 以下内容
/******************************************/
/* 数据库全名 = nacos_config */
/* 创建数据库,用户,授权 */
/******************************************/
create database nacos_config charset utf8;
create user nacos@'%' identified with mysql_native_password by '123456';
grant all on nacos_config.* to nacos@'%';
flush privileges;
use nacos_config;
2.2.2 准备 nacos 配置文件
# 01. 创建配置文件和数据保存目录
mkdir -p /app/nacos/{conf,data}
# 02. 准备配置文件
/app/nacos/conf/1.4.0-ipv6_support-update.sql
/app/nacos/conf/application.properties
/app/nacos/conf/nacos-logback.xml
/app/nacos/conf/schema.sql
# 03. 修改 application.properties 文件,其余不动
server.servlet.contextPath=/nacos
server.port=8848
spring.datasource.platform=mysql
db.num=1
# 修改数据库IP/数据库名称
db.url.0=jdbc:mysql://mysql-nacos:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
# 数据库账号
db.user.0=nacos
# 数据库密码
db.password.0=123456
2.2.3 启动服务
docker-compose 文件
version: "3.3"
services:
mysql-nacos:
image: mysql:8.0.28
container_name: mysql-nacos
ports:
- '3306:3306'
environment:
MYSQL_ROOT_PASSWORD: '123456'
MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
volumes:
- /app/nacos/nacos-mysql:/var/lib/mysql
# 第一次启动时,取消以下注释,后续建议注释,作用:初始化数据库
#- /app/nacos/init-mysql:/docker-entrypoint-initdb.d
privileged: true
restart: always
command: --default-authentication-plugin=mysql_native_password
networks:
- nacos-net
nacos-server:
image: nacos/nacos-server:v2.0.3
container_name: nacos-server
ports:
- "8848:8848"
- "9848:9848"
- "9555:9555"
environment:
MODE: standalone
volumes:
- /app/nacos/conf:/home/nacos/conf
- /app/nacos/data:/home/nacos/data
privileged: true
restart: always
networks:
- nacos-net
depends_on:
- mysql-nacos
networks:
nacos-net: