Windows 上配置 Nacos Server 3.x.x 使用 MySQL 5.7

Windows 上配置 Nacos Server 3.x.x 使用 MySQL 5.7

Nacos Server 3.x.x 在默认使用内嵌的 Derby 数据库时,可能会报出 Error creating bean with name 'capacityManagementAspect' defined in URL 的错误,干脆连接到更常规高效的 MySQL 数据库以规避这个报错。

在 Windows 上配置 Nacos Server 使用 MySQL 5.7,主要涉及数据库初始化修改配置文件两个核心步骤。

注意: Nacos 3.x.x 版本是基于较新的 Spring Boot 开发的,必须使用 JDK 17 或以上版本运行,否则无法启动。

以下是详细的操作步骤:

1. 环境准备

  • JDK : 确保已安装 JDK 17+ 并配置好 JAVA_HOME 环境变量。
  • MySQL: 确保 MySQL 5.7 服务已启动。
  • Nacos : 本文以 3.1.1 版本为例,下载并解压 nacos-server-3.1.1.zip

2. 初始化数据库

Nacos 需要在其指定的数据库表中存储配置数据。

  1. 创建数据库

    你需要创建一个名为 nacos 的数据库。你可以使用 SQL 命令或图形化工具:

    • 通用 SQL 命令

      sql 复制代码
      CREATE DATABASE nacos DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    • 使用 Navicat

      右键点击连接名 -> 选择 "新建数据库" -> 数据库名输入 nacos -> 字符集选择 utf8mb4 -> 排序规则选择 utf8mb4_general_ci -> 点击确定。

    • 使用 HeidiSQL

      右键点击会话根节点(连接名) -> 选择 "创建新的" -> "数据库" -> 名称输入 nacos -> 排序规则选择 utf8mb4_general_ci -> 点击确定。

  2. 定位 SQL 脚本

    找到 Nacos 解压目录下的 SQL 脚本文件。

    • 路径通常为:nacos/conf/
    • 文件名:在 Nacos 2.1 及之后版本(含 3.x),文件通常名为 mysql-schema.sql (旧版本为 nacos-mysql.sql)。
  3. 执行脚本(导入表结构)

    你需要将上述 SQL 脚本导入到 nacos 数据库中。你可以使用命令行,也可以使用常见的图形化工具:

    • 使用 Navicat:

      1. 连接 MySQL,双击打开 nacos 数据库(使其图标变绿/激活)。
      2. 右键点击 nacos 数据库,选择 "运行 SQL 文件..." (Execute SQL File)
      3. 在弹出的窗口中,"文件"一栏选择 nacos/conf/mysql-schema.sql
      4. 点击 "开始",等待进度条走完且显示"Finished successfully",关闭窗口。
      5. 右键刷新数据库,确认已生成 config_info 等表。
    • 使用 HeidiSQL:

      1. 连接 MySQL,在左侧会话管理器中点击选中 nacos 数据库。
      2. 点击菜单栏的 "文件" -> "加载 SQL 文件..." (File -> Load SQL file),或者点击工具栏上的文件夹图标,选择 mysql-schema.sql
      3. 文件内容加载到右侧"查询"标签页后,点击上方蓝色的 "运行" 播放按钮(或直接按键盘 F9)。
      4. 执行完毕后,在左侧数据库列表处右键刷新,确认表结构已创建。

3. 修改配置文件 (application.properties)

需要修改 Nacos 的配置文件以连接到你的 MySQL 数据库。

  1. 打开文件:nacos/conf/application.properties
  2. 找到 Datasource Related Configurations 区域,根据 Nacos 3.x 的默认模板,取消注释并修改相关配置(保留默认参数通常即可兼容 MySQL 5.7):
properties 复制代码
#*************** Datasource Related Configurations ***************#
### nacos.plugin.datasource.log.enabled=true

# 1. 指定数据库平台 (取消注释)
spring.sql.init.platform=mysql

### Count of DB:
# 2. 数据库实例数量 (取消注释)
db.num=1

### Connect URL of DB:
# 3. 数据库连接配置 (取消注释并修改 IP、端口、库名)
# 注意:对应 MySQL 5.7,建议保留 characterEncoding=utf8 等参数
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC

# 4. 数据库用户名和密码 (取消注释并修改)
# Nacos 3.x 模板中默认使用全局配置 (无 .0 后缀)
db.user=root
db.password=你的数据库密码

### 补充:鉴权配置 (重要差异)

Nacos 3.x (及 2.2.0+) 增强了安全性,默认移除了内置的弱口令密钥。**如果以下配置留空,启动时控制台会暂停并要求你手动输入密钥**,且会将输入值回写到配置文件中。为避免启动困惑,建议提前配置:

```properties
#*************** Auth Plugin Related Configurations ***************#
# 1. 开启鉴权系统 (根据需要开启,通常生产环境开启)
nacos.core.auth.enabled=false

# 2. 自定义服务端身份识别 Key/Value (必填,否则启动会询问)
nacos.core.auth.server.identity.key=nacos
nacos.core.auth.server.identity.value=nacos

# 3. 自定义 Token 密钥 (必填,否则启动会询问)
# 注意:必须是 Base64 编码的字符串,且长度建议在 32 字符以上
# 示例值为:ThisIsMyCustomSecretKey012345678 的 Base64 编码
nacos.core.auth.plugin.nacos.token.secret.key=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=

关键点说明:

  • spring.sql.init.platform=mysql : 这一行必须取消注释,声明使用 MySQL 作为存储介质(旧版本中常为 spring.datasource.platform,3.x 模板中已变更)。
  • db.num=1: 取消注释,表示有一个数据库实例。
  • db.url.0 : 确保 IP、端口和数据库名称(nacos)与你第 2 步创建的一致。
  • db.user / db.password : 填入你的 MySQL 账号密码。注意 3.x 默认模板中这两个配置项没有 .0 后缀,表示应用于所有数据源。
  • nacos.core.auth... : 若不手动配置 identity.key/valuetoken.secret.key,Nacos 3.x 启动脚本会检测到空值并在命令行交互式请求输入,这与 2.x 版本的静默启动行为不同。

4. 启动 Nacos (单机模式)

默认情况下 Nacos 会以集群模式启动,在本地 Windows 测试时通常使用单机模式(Standalone)。

  1. 打开命令提示符 (CMD) 或 PowerShell。

  2. 进入 Nacos 的 bin 目录:

    cmd 复制代码
    cd D:\path\to\nacos\bin
  3. 执行启动命令:

    • CMD:

      cmd 复制代码
      startup.cmd -m standalone
    • PowerShell:

      powershell 复制代码
      .\startup.cmd -m standalone

5. 验证是否成功

  1. 观察控制台输出,如果没有报错且看到 Nacos started successfully in stand alone mode 字样,说明启动成功。
  2. 打开浏览器访问 Nacos 控制台:
    • 注意:Nacos 3.x 将控制台端口与服务端口分离,默认使用 8080。
    • 地址:http://localhost:8080
    • 初始化密码(重要)
      • Nacos 3.x 移除了默认弱口令。首次访问时,你会看到"初始化密码"界面。
      • 在输入框中设置你的管理员密码(本地测试可仍设为 nacos,生产环境请设强密码)。
      • 点击提交后,使用账号 nacos 和你刚才设置的密码登录。
  3. 验证持久化
    • 在控制台"配置管理"中新建一个配置。
    • 去你的 MySQL 数据库查询 config_info 表,如果能查到刚才新建的记录,说明 MySQL 配置成功。
相关推荐
R-sz15 小时前
如何将json行政区划导入数据库,中国行政区域数据(省市区县镇乡村五级联动)
java·数据库·json
zuozewei15 小时前
零基础 | AI编程工具 Claude Code 快速上手指南(Windows)
windows·ai编程
定仙游45315 小时前
Java StringBuilder 超详细讲解
java
haiyu柠檬15 小时前
IDEA和VSCode中好用的插件推荐
java·vscode·intellij-idea
赵文宇15 小时前
CNCF Dragonfly 毕业啦!基于P2P的镜像和文件分发系统快速入门,在线体验
后端
怜淇15 小时前
docker拉取openjdk8:jre失败
java·docker·容器
降临-max15 小时前
JavaWeb企业级开发---Mybatis
java·开发语言·笔记·学习·mybatis
程序员爱钓鱼15 小时前
Node.js 编程实战:即时聊天应用 —— WebSocket 实现实时通信
前端·后端·node.js
好好研究16 小时前
SpringBoot注解的作用
java·spring boot·spring
阿坤带你走近大数据16 小时前
oracle的varchar2(200)和mysql的varchar(200) 最大支持的字节数和字符数都一样吗
数据库·mysql·oracle