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 配置成功。
相关推荐
码农小卡拉11 小时前
深入解析Spring Boot文件加载顺序与加载方式
java·数据库·spring boot
向上的车轮11 小时前
为什么.NET(C#)转 Java 开发时常常在“吐槽”Java:checked exception
java·c#·.net
Dragon Wu11 小时前
Spring Security Oauth2.1 授权码模式实现前后端分离的方案
java·spring boot·后端·spring cloud·springboot·springcloud
跳动的梦想家h11 小时前
环境配置 + AI 提效双管齐下
java·vue.js·spring
坚持就完事了12 小时前
Java中的集合
java·开发语言
wjhx12 小时前
QT中对蓝牙权限的申请,整理一下
java·数据库·qt
一个有梦有戏的人12 小时前
Python3基础:进阶基础,筑牢编程底层能力
后端·python
YCY^v^12 小时前
JeecgBoot 项目运行指南
java·学习
人间打气筒(Ada)12 小时前
jenkins基于Pipeline发布项目
java·pipeline·jenkins·流水线·ci·cd·cicd
爬山算法12 小时前
Hibernate(88)如何在负载测试中使用Hibernate?
java·后端·hibernate