前提准备

  1. 已安装 JDK 8/11(Nacos 2.x 推荐版本),且配置 JAVA_HOME
  2. MySQL 5.7+/8.x 已运行,且能正常访问;
  3. 清理旧安装包(避免残留配置干扰)。

步骤 1:彻底卸载旧版 Nacos

1.1 停止旧 Nacos 进程

bash

运行

# 停止进程
sh /usr/software/nacos/nacos/bin/shutdown.sh

# 确认进程已杀死(无输出则已停止)
ps -ef | grep nacos | grep -v grep
1.2 删除旧安装目录(彻底清理)

bash

运行

# 备份重要配置(可选,如需要保留旧配置)
cp -r /usr/software/nacos/nacos/conf /tmp/nacos-conf-backup

# 删除整个 Nacos 目录
rm -rf /usr/software/nacos/nacos
1.3 清理 Derby 残留数据(避免干扰)

bash

运行

# 删除 Derby 数据库文件(如果有)
rm -rf ~/nacos/data
rm -rf /tmp/nacos

步骤 2:重新下载并解压 Nacos 安装包

推荐使用稳定版 2.2.0(兼容性好):

bash

运行

# 进入安装目录
cd /usr/software/nacos

# 下载 Nacos 2.2.0 安装包(也可手动下载上传)
wget https://github.com/alibaba/nacos/releases/download/2.2.0/nacos-server-2.2.0.tar.gz

# 解压
tar -zxvf nacos-server-2.2.0.tar.gz

# 重命名为 nacos(方便后续操作)
mv nacos-server-2.2.0 nacos

步骤 3:初始化 MySQL 数据库(全新配置)

3.1 创建数据库并执行官方脚本

bash

运行

# 登录 MySQL
mysql -uroot -p

# 1. 创建数据库(字符集必须 utf8mb4)
CREATE DATABASE IF NOT EXISTS nacos_config CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

# 2. 切换数据库
USE nacos_config;

# 3. 执行官方初始化脚本(自动创建 users/roles/config_info 等表)
SOURCE /usr/software/nacos/nacos/conf/nacos-mysql.sql;

# 验证表是否创建成功(能看到 users/roles 表即正常)
SHOW TABLES;
3.2 授权 MySQL 访问权限

sql

# 授权 root 本地访问(替换为你的密码)
GRANT ALL PRIVILEGES ON nacos_config.* TO 'root'@'localhost' IDENTIFIED BY '你的MySQL密码';
GRANT ALL PRIVILEGES ON nacos_config.* TO 'root'@'127.0.0.1' IDENTIFIED BY '你的MySQL密码';
FLUSH PRIVILEGES;

# 退出 MySQL
EXIT;

步骤 4:配置 Nacos 连接 MySQL(核心)

编辑 application.properties,仅保留必要配置(避免冗余):

bash

运行

vi /usr/software/nacos/nacos/conf/application.properties

清空原有内容,粘贴以下配置(替换 MySQL 密码):

properties

# 核心配置:启用 MySQL 数据源
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
db.user.0=root
db.password.0=你的MySQL密码

# Web 端口(默认 8848,可修改)
server.port=8848

# 单机模式标识
nacos.standalone=true

# 关闭不必要的认证(避免干扰)
nacos.core.auth.enabled=false

# MySQL 驱动配置(兼容 5.7/8.x)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

步骤 5:添加 Nacos 登录用户(MySQL 中)

bash

运行

# 重新登录 MySQL
mysql -uroot -p nacos_config

# 插入默认用户 nacos(密码为 BCrypt 加密的 nacos,明文密码就是 nacos)
INSERT INTO users (username, password, enabled) 
VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', 1);

# 分配管理员权限
INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');

# 验证插入结果
SELECT * FROM users;
SELECT * FROM roles;

# 退出 MySQL
EXIT;

步骤 6:启动并验证全新 Nacos

6.1 启动单机模式

bash

运行

# 进入 bin 目录
cd /usr/software/nacos/nacos/bin

# 启动单机模式(-m standalone 可省略,因为配置文件已设 nacos.standalone=true)
sh startup.sh -m standalone
6.2 检查启动日志(无报错则成功)

bash

运行

# 查看启动日志
tail -500 /usr/software/nacos/nacos/logs/start.out

# 成功标识:
# 1. "Nacos server startup successfully in standalone mode."
# 2. "Successfully initialized DataSource"(MySQL 连接成功)
# 3. 无 "unknown user" "No DataSource set" 等报错
6.3 登录控制台验证
  1. 访问地址:http://你的服务器IP:8848/nacos
  2. 输入账号:nacos,密码:nacos
  3. 能正常登录且无报错,说明安装配置成功。

步骤 7:(可选)设置开机自启(方便使用)

bash

运行

# 创建系统服务文件
vi /etc/systemd/system/nacos.service

粘贴以下内容(替换 JAVA_HOME 和 Nacos 目录):

ini

[Unit]
Description=Nacos Server
After=network.target mysqld.service

[Service]
Type=forking
Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk"  # 替换为你的 JAVA_HOME
ExecStart=/usr/software/nacos/nacos/bin/startup.sh -m standalone
ExecStop=/usr/software/nacos/nacos/bin/shutdown.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

刷新并启用服务:

bash

运行

systemctl daemon-reload
systemctl enable nacos
systemctl start nacos

总结

  1. 重装核心:彻底删除旧目录 + 重新初始化 MySQL 表 + 清空冗余配置,避免残留问题;
  2. 关键配置application.properties 明确启用 MySQL + 单机模式,MySQL 中提前添加用户并授权;
  3. 验证标准:启动日志无报错、控制台能正常登录 nacos/nacos

如果重装后仍有问题,优先检查:

  • MySQL 密码是否正确;
  • application.properties 中 MySQL 地址是否写 127.0.0.1(而非 localhost,避免 DNS 解析问题);
  • 启动日志中是否有 MySQL 连接超时 / 权限错误。
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐