centos环境下部署nacos2.2.0

缘起

工作需要基于centos环境搭建一套nacos单机,现做简单记录。

安装部署单机nacos

  1. 安装java环境
    yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

  2. 设置java环境变量
    vi /etc/profile

在文件末尾添加:
export JAVA_HOME=$(dirname $(dirname $(readlink $(which javac))))
export PATH=$JAVA_HOME/bin:$PATH

执行使配置生效:
source /etc/profile

验证安装:
java -version

  1. 下载安装nacos安装包
    从github上下载nacos安装包
    wget https://github.com/alibaba/nacos/releases/download/2.3.0/nacos-server-2.3.0.tar.gz
    解压安装包
    tar -zxvf nacos-server-2.3.0.tar.gz
    mv nacos /home/gl/nacos # 选择路径

  2. 运行nacos (单机模式)
    vi /home/gl/nacos/bin/startup.sh
    找到:MODE=”cluster” 改为:MODE=”standalone”
    或者运行时加参数:
    sh startup.sh -m standalone

  3. 查看nacos是否启动成功
    ps -ef | grep nacos
    netstat -tunlp | grep 8848
    也可以访问浏览器:http://<服务器IP>:8848/nacos

也可以观察启动日志,成功的日志会有nacos字样的图形展示
/nacos/logs/start.out

停止nacos命令:
sh /home/gl/nacos/bin/shutdown.sh

  1. 本地项目相关配置
    spring:
    application:
    name: mes
    profiles:
    active: dev #表示开发环境
    cloud:
    nacos:
    discovery:
    server-addr: 192.168.92.61:8848
    service: mes
    # 禁用nacos自动配置
    enabled: true
    namespace: 924181f7-3333-1111-2222-41979ef403dc
    group: DEFAULT_GROUP
    username: nacos
    password: nacos
    config:
    server-addr: 192.168.92.61:8848
    file-extension: yaml
    # 禁用nacos自动配置
    enabled: true
    namespace: 924181f7-3333-1111-2222-41979ef403dc
    group: DEFAULT_GROUP
    # 服务器名字
    prefix: mes
    username: nacos
    password: nacos

部署持久化的mysql

  1. 执行相关脚本
    2.2.0版本的nacos,需要来到 /nacos/conf/mysql-schema.sql内容,在navicate执行该脚本,创建对应表及数据

  2. 修改/nacos/conf/application.properties 文件,修改内容如下:

#*************** Config Module Related Configurations ***************# ### If use MySQL as datasource: spring.datasource.platform=mysql

Count of DB:

db.num=1

Connect URL of DB:

db.url.0=jdbc:mysql://ip地址:3306/数据库名?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=数据库账号
db.password.0=数据库密码

If turn on auth system:

nacos.core.auth.enabled=true
nacos.security.user.name=nacos
nacos.security.user.password=nacos

  1. 停止并重启nacos
    注意,2.2.0 版本的访问地址为:http://ip地址:8848/nacos/index.html

遇到问题

在部署nacos过程中,遇到一些问题,做如下梳理:

账号密码登录错误

部署完成,登录页面能够正常打开,但是输入配置文件当中的账号密码,仍然无法登录,提示账号密码错误。手动修改对应数据库user表,对 password md5 加密后,仍然无法登录。最终排查发现是 db.url.0 中配置的 “ip地址:3306/数据库名”,其中数据库名我没有调整成和 mysql 数据库一致,导致其实一直没有正确的连接到数据库。

能注册到 nacos 但是无法获取到对应的配置

登录后发现系统正常注册,但是一直无法获取到配置。各种原因排查一遍,需要注意如下两点:

其一,配置文件的dataID = {application.name}-{profiles.active}.{nacos.config.file-extension},项目在启动的时候会优先加载{application.name}‑{profile}.{file‑extension},再加载{application.name}.{file‑extension}

其二,在 Spring 项目中,application.yml 和 bootstrap.yml 都是用来定义配置属性的 YAML 文件,但它们在加载时机、作用范围和适用场景上有明显区别:其中 bootstrap.yml 最早被加载,位于 spring 上下文初始化阶段,而 application.yml 会在 Spring 上下文创建完基础环境后加载,即应用阶段。

我发现自己无法获取配置的原因就是第二点,配置写在 application.yml 当中,导致一直读取不到 nacos 配置文件,换到 bootstrap.yml 果然恢复。


centos环境下部署nacos2.2.0
https://wuzu15hao.com/post/deployNacosInCentos/
作者
winter
发布于
2025年4月24日
许可协议