记录本地安装nacos服务的方法及异常

1.安装

直接到官网上下载所需要的版本Nacos Server 下载 | Nacos 官网

解压到不含中文和空格的路径,例如 `D:\tools\nacos`

启动:不要双击 `startup.cmd`。它默认走集群模式,会直接报错。请在命令行执行:

bash 复制代码
cd /d D:\tools\nacos\bin
.\startup.cmd -m standalone

看到 `Nacos started successfully in stand alone mode` 即成功。这个窗口不能关

2.异常

【要求输入密钥值】

如果提示要求输入密钥值(从 Nacos 2.2.0.1 版本开始,官方为了安全,移除了默认密钥,要求你必须自己生成一个填进去,否则无法启动):

bash 复制代码
nacos.core.auth.plugin.nacos.token.secret.key value is empty, please input:

解决:

你需要自己创建一个满足以下条件的字符串:

  1. 推荐格式:Base64 编码后的字符串。
  2. 长度要求:原始密钥长度不得低于 32 字符。

生成方法(任选一种):

  1. Linux/Mac 终端:
bash 复制代码
openssl rand -base64 32

(这会直接生成一个符合要求的随机 Base64 字符串,复制结果即可)

  1. Windows PowerShell:
bash 复制代码
[System.Convert]::ToBase64String((1..32 | ForEach-Object { Get-Random -Maximum 256 }))
  1. 临时测试(不推荐生产用):

如果你只是本地测试,可以直接用官方文档里那个公开的测试密钥:

bash 复制代码
SecretKey012345678901234567890123456789012345678901234567890123456789

注意:这个值是公开的,有安全风险,正式环境务必换成自己生成的。

生成好密钥后,有两种填法:

  • 方法一:直接响应提示(最快)

在你运行 startup.cmd 的那个黑窗口里,直接粘贴你生成的密钥,然后按回车。启动脚本会自动把它写入配置并启动。

  • 方法二:手动改配置文件
  1. 打开 Nacos 安装目录下的 conf/application.properties 文件。

  2. 找到或添加这一行:

bash 复制代码
nacos.core.auth.plugin.nacos.token.secret.key=你生成的Base64字符串

保存后重新启动 Nacos。

补充提醒

如果你是集群部署,所有节点的这个密钥值必须完全一致,否则节点间通信会报 403 错误

【版本不匹配】

bash 复制代码
"nacos is starting with standalone"
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/springframework/boot/loader/launch/PropertiesLauncher has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)
请按任意键继续. . .

直接改 Nacos 启动脚本(一劳永逸)

如果你希望每次启动这个 Nacos 都固定用 JDK 17,可以直接在 startup.cmd 里写死路径。

  1. 用记事本打开 Nacos 安装目录下 bin\startup.cmd。

  2. 在文件开头(@echo off 之后)加上一行:

    cmd

    复制代码
    set JAVA_HOME=C:\Program Files\Java\jdk-17

    (把路径换成你 JDK 17 的实际安装位置)

  3. 保存后正常双击或运行 startup.cmd -m standalone 即可。

相关推荐
步行cgn1 小时前
Spring MVC 视图机制的核心接口与类
java·开发语言·后端·spring·mvc
y1su1 小时前
Leetcode 字符串模板
java·数据结构·算法·leetcode·职场和发展·动态规划
传奇开心果编程2 小时前
【Rust入门练中学】第5课:引用与借用
开发语言·rust·引用·编程语言理论·通用编程语言·借用
qetfw2 小时前
Bash 变量:export、位置参数与默认值展开验证
linux·开发语言·chrome·bash
电子云与长程纠缠2 小时前
UE5魂系游戏开发教程05
开发语言·学习·游戏·ui·ue5
cspttty3 小时前
2027风险管理岗准备路线:数学与应用数学如何补齐金融、SQL与Python
开发语言·python·金融
我命由我123453 小时前
Python 开发 - Python 的 pathlib
java·开发语言·后端·python·学习·java-ee·学习方法
苜蓿muxu3 小时前
Java 字符串拼接:+、StringBuilder、StringBuffer的区别
java
严谨的麻辣烫3 小时前
Python HTTP 连接池怎么用?从连接复用到请求异常排查
开发语言·python·http·requests·网络排查