nacos官网: https://nacos.io/zh-cn/index.html
nacos下载地址: https://github.com/alibaba/nacos/tags
nacos文档: https://nacos.io/zh-cn/docs/what-is-nacos.html
nacos使用mysql数据库存储信息
默认情况下nacos使用的是内存数据库, 当集群的时候不能很好的保证数据一致性, 所以考虑将配置信息放在数据库中, 集群中的每个实例都从mysql中存取配置,以保证数据的一致性
1. 修改nacos解压后的conf目录下application.properties文件的以下内容
原始内容如下:
修改后的内容如下, 主要是打开相关配置, 并配置连接的数据库信息, 其中数据库名称可以是任意的数据库, 但需要在该数据库中初始化相关的sql。
使用mysql8可能的异常信息:
com.mysql.cj.exceptions.CJException: Public Key Retrieval is not allowed
解决方案: mysql的链接信息后面添加上&allowPublicKeyRetrieval=true配置
使用root用户可能的异常信息:
com.mysql.cj.exceptions.CJException: Access denied for user 'root'@'windows10.microdone.cn' (using password: YES)
解决方案:
第一种: 放开root用户登录的服务器限制
第二种:新建一个可以在任意服务器登录的用户(参考 https://blog.youkuaiyun.com/changerzhuo_319/article/details/103003214 的添加用户部分),并使用该用户信息链接mysql
2. 创建nacos要使用的数据库及表, 如上配置需要先创建一个“nacos_bak”数据库, 然后在数据库中执行conf目录下的“nacos_mysql.sql”文件。完成后数据库及表如下图:
config_info表:存放配置相关信息
主要字段如下:
tenant_id: 配置文件所属命名空间, 空表示默认的命名空间
data_id:配置文件的标识
group_id: 配置文件所属组
type:配置文件类型
content: 配置文件的内容
tenant_info表:存放命名空间相关信息
tenant_id:命名空间唯一标识,kp和tenant_id字段是一个联合唯一索引。(kp是个啥? 暂时我也不知道)
tenant_name:命名空间名称
tenant_desc:命名空间描述