Nacos更改数据库与集群配置

本文介绍了如何将Nacos从默认的derby数据库迁移到MySQL,详细步骤包括创建MySQL数据库、修改Nacos配置文件、重启服务以及验证数据迁移。接着,详细阐述了Nacos集群的部署过程,涉及配置文件修改、启动多个实例、配置nginx反向代理等关键步骤,最终完成集群搭建并测试访问。

目录

新建Nacos的数据库

更改Nacos默认的数据库

Nacos集群部署


 

新建Nacos的数据库

 

Nacos会自带一个derby数据库,用来持久化我们注册的服务与配置。生产中,我们需要改derby为MySQL 

以Windows为例,你需要在nacos的安装目录下找到这个sql文件

在你的mysql数据库中执行此文件,就会创建一个nacos数据库

 

 

更改Nacos默认的数据库

 

找到application.properties文件

在最后加入如下代码 

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?
characterEncoding=utf-8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root

此时,重启你的Nacos,你会发现之前的配置都没了

重点来了,此时在你的配置中心新建一个配置

你会发现你的mysql对应的表中插入了一条数据,到此数据库更改完毕

 

 

Nacos集群部署

 

Nacos集群架构图

集群搭建

先下载Nacos,和Windows一样,解压即可

第一步还是把nacos中的sql文件搞出来,我们要在虚拟机上执行这个sql文件,新建数据库

第二步设置mysql为nacos的默认数据库

vim application.properties文件,在最后加上数据库设置

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?
characterEncoding=utf-8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root

第三步,设置nacos集群,copy一个cluster.conf文件

cp cluster.conf.example cluster.conf

vim cluster.conf文件

第四步,配置nacos的startup.sh文件,cd bin目录,让他支持根据端口号启动不同的实例

vim startup.sh

修改内容如下

第五步,修改nginx.conf

第六步,在sbin目录下重启nginx

./nginx -s reload

第七步,切换到nacos的bin目录中,分别通过3个端口启动3个实例

 

第八步:测试访问

先保证关闭防火墙或开发全部集群端口和nginx转发端口,然后输入网址访问nacos,账号密码都是nacos

http://192.168.62.130/nacos

 

第九步:新建配置,测试数据库更改是否成功

 可以看到,我们对nacos的操作不再保存到derby库,而保存到了mysql中~~~

在使用 **Nacos** 作为配置中心时,如果你希望配置数据能够**持久化存储**,而不是只保留在内存中(重启后丢失),就需要将 Nacos配置数据存储到**关系型数据库**中,通常是 **MySQL**。 --- ## ✅ Nacos 支持的持久化方式 Nacos 支持以下几种持久化方式: | 类型 | 描述 | |------|------| | **内置数据库(derby)** | 默认方式,适合单机测试环境,数据不持久 | | **MySQL** | 推荐用于生产环境,支持集群、数据持久化、高可用 | | **PostgreSQL** | 社区支持,但官方推荐使用 MySQL | --- ## ✅ 配置 MySQL 持久化的步骤 ### ✅ 步骤 1:准备 MySQL 数据库 创建一个数据库,例如: ```sql CREATE DATABASE nacos_config; ``` --- ### ✅ 步骤 2:导入 Nacos数据库脚本 Nacos 提供了初始化脚本 `schema.sql` 和 `init.sql`,你可以从 Nacos 的源码或发布包中获取。 GitHub 地址(以 2.x 为例): 👉 https://github.com/alibaba/nacos/blob/develop/distribution/conf/schema.sql #### 执行脚本: ```bash mysql -u root -p nacos_config < schema.sql ``` 这个脚本会创建以下主要表: - `config_info`:配置文件信息 - `config_info_beta`:灰度发布配置 - `config_info_tag`:标签配置 - `config_tags_relation`:标签关系 - `group_capacity`:组容量限制 - `his_config_info`:历史配置记录 - `permissions`, `roles`, `users`:权限控制相关表 --- ### ✅ 步骤 3:修改 Nacos 配置文件 进入 Nacos配置目录(`conf`),修改 `application.properties` 文件: ```properties 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 db.user.0=root db.password.0=your_password ``` > ⚠️ 注意:如果你使用的是 **集群部署**,请配置多个 `db.url.x`、`db.user.x`、`db.password.x` --- ### ✅ 步骤 4:启动 Nacos 如果是单机模式启动: ```bash sh startup.sh -m standalone ``` 如果是集群模式: ```bash sh startup.sh ``` 启动后,Nacos 会自动连接 MySQL,并将配置数据持久化到数据库中。 --- ## ✅ 验证是否持久化成功 1. 在 Nacos 控制台添加一个配置。 2. 登录 MySQL 查看 `config_info` 表: ```sql SELECT * FROM config_info; ``` 如果能看到刚添加的配置记录,说明持久化已经生效。 --- ## ✅ 配置示例(application.properties) ```properties # 开启 MySQL 持久化 spring.datasource.platform=mysql # 数据源数量 db.num=1 # 数据库连接配置 db.url.0=jdbc:mysql://localhost:3306/nacos_config?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8 db.user.0=root db.password.0=123456 # 驱动类(可选,默认自动识别) spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` --- ## ✅ 注意事项 | 项目 | 说明 | |------|------| | **MySQL 版本** | 推荐使用 5.7+ 或 8.0+ | | **字符集** | 推荐使用 `utf8mb4` | | **连接池** | 默认使用 `Druid`,也可以自定义 | | **集群部署** | 多个 Nacos 节点应连接同一个数据库 | | **升级脚本** | 不同版本 Nacos 可能需要执行升级脚本,详见官方文档 | --- ## ✅ 总结 | 项目 | 内容 | |------|------| | ✅ 持久化方式 | MySQL 是推荐的持久化方式 | | ✅ 持久化流程 | 导入 schema.sql → 修改 application.properties → 启动 Nacos | | ✅ 数据表作用 | `config_info` 是核心表,保存所有配置 | | ✅ 适用场景 | 单机测试使用内置 derby,生产环境必须使用 MySQL | | ✅ 集群支持 | 多个 Nacos 实例共享同一个数据库实现高可用 | --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值