Linux装Nacos能跑起来的核心三件事:JDK版本需匹配(2.2.x用JDK8/11,2.3+用JDK17需加TLS参数)、必须进入bin目录执行startup.sh、切MySQL前必须删除derby-data目录并正确放置驱动。

Linux 上装 Nacos 配置中心,能跑起来的核心就三件事:JDK 版本对、解压后进 bin 目录再启动、MySQL 切换时必须删 derby-data。别碰源码编译,也别用包管理器装,90% 的失败都卡在这几步。
确认 JDK 版本和 JAVA_HOME 是否生效
Nacos 2.2.x 只认 JDK 8 或 11;2.3+ 虽支持 JDK 17,但不加 JVM 参数会直接报 java.lang.ClassNotFoundException: com.alibaba.nacos.Nacos。
- 运行
java -version和echo $JAVA_HOME,确保二者一致且版本在支持范围内 - 检查
/opt/nacos/bin/startup.sh头部是否硬编码了JAVA_HOME(有些下载包自带,会覆盖系统环境变量) - 若用 JDK 17,必须在
startup.sh中找到JVM_OPT行,在末尾追加:-Djdk.tls.client.protocols=TLSv1.2
解压后必须进 bin 目录再执行 startup.sh
这是最常静默失败的坑:很多人在 /opt 下直接运行 ./nacos/bin/startup.sh -m standalone,结果脚本找不到 conf/ 和 logs/ 相对路径,连日志都不写。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 正确操作是:先
cd /opt/nacos/bin,再运行./startup.sh -m standalone - 验证是否真启动:用
ps aux | grep nacos看有没有org.springframework.boot.loader.JarLauncher进程 - 别信控制台一闪而过的 “started”,盯
logs/start.out才靠谱
切 MySQL 不是改几行配置就够的
现象是日志反复刷 Failed to obtain JDBC Connection,但账号密码明明是对的——本质是 Derby 和 MySQL 驱动冲突。
- 必须删掉
data/derby-data/目录(否则 Nacos 启动时优先尝试恢复 Derby) - MySQL 驱动 JAR(如
mysql-connector-java-8.0.33.jar)必须放进plugins/mysql/,不能放lib/或其他位置 -
conf/application.properties中spring.datasource.platform=mysql和db.num=1必须同时存在 - 数据库要提前建好,字符集必须是
utf8mb4;初始化 SQL 用的是conf/nacos-mysql.sql,不是网上随便找的
别忘了开 9848 和 9849 端口
Nacos 2.x 默认监听三个端口:8848(HTTP)、9848(gRPC client)、9849(gRPC server)。如果做了外网映射,这三个端口都得通。
- 比如你把
8848映射成50873,那9848和9849就得分别映射成51873和51874(偏移量 +1000/+1001) - 防火墙里也要放开这俩端口:
sudo ufw allow 9848 && sudo ufw allow 9849 - 如果用 Docker,记得加
-p 9848:9848 -p 9849:9849
真正卡住人的从来不是配置项本身,而是 Derby 残留、路径错位、端口不通这三类“看不见的依赖”。每次启动前花 30 秒扫一遍这几点,比重装三次更省时间。

















