[alibaba/nacos]Nacos 2.1.0无法创建新的配置

2023-12-14 950 views
8
 Nacos Server:  2.1.0
 Model: standalone

我启动Nacos server后,启动过程中提示config_info表中缺少encrypted_data_key字段,然后我就手动加了这个字段encrypted_data_key(varchar(255)).但是无法创建新的配置 image image

回答

8

分别在config_info 和 history_config_info 这两个表里添加这两个字段就可以了, 应该是官方的docker脚本里没更新进去 我用的standalone-mysql8

6

非常感谢,我在对应表加了字段就可以了

9

新建配置发生同样的错误,但是config_info 和 his_config_info 表已经存在encrypted_data_key 字段。仍旧是报错 Nacos Server: 2.1.0 Model: K8s

9

取消 encrypted_data_key 必填就行了

5

受众这么广的库新版本竟然会有这种问题就很迷

0

我使用docker部署的nacos 2.1.0 和MySQL 5.7 ,在config_info 和 his_config_info 表中添加了encrypted_data_key 解决的问题。

9

异常信息是这样的

PreparedStatementCallback;
SQL [INSERT INTO his_config_info (id,data_id,group_id,tenant_id,app_name,content,md5,src_ip,src_user,gmt_modified,op_type) VALUES(?,?,?,?,?,?,?,?,?,?,?)];
Field 'encrypted_data_key' doesn't have a default value; 

encrypted_data_key 这个新加的字段被设置为 text NOT NULL,但是设置默认值的时候又提示 text 类型不能设置默认值。

7

设置为非必填

0

解决方案 为保证用户敏感配置数据的安全,Nacos 提供了配置加密的新特性。降低了用户使用的风险,也不需要再对配置进行单独的加密处理。

前提条件 版本:

老版本暂时不兼容,目前只基于2.x版本进行了改造,推荐版本 > 2.0.4。

内嵌数据库启动:

数据库表 config_info、config_info_beta、his_config_info中需要新增字段 encrypted_data_key ,用来存储每一个配置项加密使用的秘钥。新版本的默认创建表的sql中已经添加该字段。

如果之前使用过内嵌数据库的单机模式启动则需要删除 nacos/data 文件夹,在重新启动会重新创建表。

MySQL启动:

数据库表 config_info、config_info_beta、his_config_info中需要新增字段 encrypted_data_key ,用来存储每一个配置项加密使用的秘钥。新版本的默认创建表的sql中已经添加该字段。

对于目前已经搭建好的 Nacos 使用以下 sql 将字段添加到对应的表中:

ALTER TABLE table_name ADD COLUMN encrypted_data_key text NOT NULL COMMENT '秘钥'