我们在用 Nacos 做配置中心时配置文件是需要持久化保存的,否则重启之后配置文件不久丢失了吗。我们发现就算没有配置持久化,我们添加的配置文件重启之后依然存在,那么这些文件是存在那里的呢?翻阅文档发现 Nacos 使用嵌入式数据库实现数据的存储,翻阅源码在 pom 中发现其使用的是 derby 嵌入式的数据库,所以当我们在 Nacos 进行相关配置之后,其数据会保存在该数据库中,我们在 Nacos 安装目录中发现有一个 derby-data 的文件夹,这里存放的就是 derby 中的数据。
既然 Nacos 内置了 derby 嵌入式数据库那么我们是不是就不需要管了,并不是,derby 是嵌入式数据库,每启动一个 Nacos 就会有一个数据库,而我们在使用 Nacos 时往往都是集群,使用 derby 数据不能互通会很麻烦。所以我们需要一个外部的统一的数据库,Nacos 在 0.7 版本增加了支持 mysql 数据源的能力。
Windows 与 Linux 配置方式一样,首先修改 conf/application.properties 文件,增加支持 mysql 数据源配置(目前只支持 mysql 5.6.5+),添加 mysql 数据源的 url、用户名和密码。
然后根据 /conf/nacos-mysql.sql 初始化 mysql 数据库,数据库名为 nacos。我们可以发现 nacos-mysql.sql 中说数据库全名为 nacos_config,但是我们将数据库命名为为 nacos_config 时,启动报找不到名为 nacos 的数据库,改为 nacos 启动成功,这是因为他在 application.properties 配置数据库时默认写的是 jdbc:mysql://127.0.0.1:3306/nacos
,这里可以自行修改。
我们运行 /bin/startup.cmd 即可启动 Nacos,注意默认是集群启动,官方文档指明单机版需要执行startup.cmd -m standalone
启动成功后我们访问 http://127.0.0.1:8848/nacos
即可进入 UI 界面,输入账户:nacos,密码:nacos 即可登录成功。我们随意新增一个配置文件,我们可以在数据库中找到一个 data_id 为文件名的数据。