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 需要在其指定的数据库表中存储配置数据。
-
创建数据库 :
你需要创建一个名为
nacos的数据库。你可以使用 SQL 命令或图形化工具:-
通用 SQL 命令:
sqlCREATE DATABASE nacos DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -
使用 Navicat :
右键点击连接名 -> 选择 "新建数据库" -> 数据库名输入
nacos-> 字符集选择utf8mb4-> 排序规则选择utf8mb4_general_ci-> 点击确定。 -
使用 HeidiSQL :
右键点击会话根节点(连接名) -> 选择 "创建新的" -> "数据库" -> 名称输入
nacos-> 排序规则选择utf8mb4_general_ci-> 点击确定。
-
-
定位 SQL 脚本 :
找到 Nacos 解压目录下的 SQL 脚本文件。
- 路径通常为:
nacos/conf/ - 文件名:在 Nacos 2.1 及之后版本(含 3.x),文件通常名为
mysql-schema.sql(旧版本为nacos-mysql.sql)。
- 路径通常为:
-
执行脚本(导入表结构) :
你需要将上述 SQL 脚本导入到
nacos数据库中。你可以使用命令行,也可以使用常见的图形化工具:-
使用 Navicat:
- 连接 MySQL,双击打开
nacos数据库(使其图标变绿/激活)。 - 右键点击
nacos数据库,选择 "运行 SQL 文件..." (Execute SQL File)。 - 在弹出的窗口中,"文件"一栏选择
nacos/conf/mysql-schema.sql。 - 点击 "开始",等待进度条走完且显示"Finished successfully",关闭窗口。
- 右键刷新数据库,确认已生成
config_info等表。
- 连接 MySQL,双击打开
-
使用 HeidiSQL:
- 连接 MySQL,在左侧会话管理器中点击选中
nacos数据库。 - 点击菜单栏的 "文件" -> "加载 SQL 文件..." (File -> Load SQL file),或者点击工具栏上的文件夹图标,选择
mysql-schema.sql。 - 文件内容加载到右侧"查询"标签页后,点击上方蓝色的 "运行" 播放按钮(或直接按键盘
F9)。 - 执行完毕后,在左侧数据库列表处右键刷新,确认表结构已创建。
- 连接 MySQL,在左侧会话管理器中点击选中
-
3. 修改配置文件 (application.properties)
需要修改 Nacos 的配置文件以连接到你的 MySQL 数据库。
- 打开文件:
nacos/conf/application.properties。 - 找到
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/value和token.secret.key,Nacos 3.x 启动脚本会检测到空值并在命令行交互式请求输入,这与 2.x 版本的静默启动行为不同。
4. 启动 Nacos (单机模式)
默认情况下 Nacos 会以集群模式启动,在本地 Windows 测试时通常使用单机模式(Standalone)。
-
打开命令提示符 (CMD) 或 PowerShell。
-
进入 Nacos 的
bin目录:cmdcd D:\path\to\nacos\bin -
执行启动命令:
-
CMD:
cmdstartup.cmd -m standalone -
PowerShell:
powershell.\startup.cmd -m standalone
-
5. 验证是否成功
- 观察控制台输出,如果没有报错且看到
Nacos started successfully in stand alone mode字样,说明启动成功。 - 打开浏览器访问 Nacos 控制台:
- 注意:Nacos 3.x 将控制台端口与服务端口分离,默认使用 8080。
- 地址:
http://localhost:8080 - 初始化密码(重要) :
- Nacos 3.x 移除了默认弱口令。首次访问时,你会看到"初始化密码"界面。
- 在输入框中设置你的管理员密码(本地测试可仍设为
nacos,生产环境请设强密码)。 - 点击提交后,使用账号
nacos和你刚才设置的密码登录。
- 验证持久化 :
- 在控制台"配置管理"中新建一个配置。
- 去你的 MySQL 数据库查询
config_info表,如果能查到刚才新建的记录,说明 MySQL 配置成功。