Nacos 2.2.x连接DB报错: 'encrypted_data_key' in 'field


由于Nacos1.X和Nacos2.0的数据结构发生了变化,为了能够完成平滑升降级,需要将数据进行双写,分别生成Nacos1和Nacos2的数据结构进行存储。因此会对性能有一定影响。

Nacos2.1.0版本后,默认关闭了双写能力,因此无法支持从Nacos1.X版本平滑升级到2.1.0的能力,若需要使用平滑升级能力,从Nacos1.X直接升级到Nacos2.1.0版本,需要在application.properties文件中设置配置nacos.core.support.upgrade.from.1x=true.

升级

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

前提条件

• 版本:

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

• 内嵌数据库启动:

数据库表config_infoconfig_info_betahis_config_info中需要新增字段encrypted_data_key ,用来存储每一个配置项加密使用的秘钥。新版本的默认创建表的sql中已经添加该字段。 如果之前使用过内嵌数据库的单机模式启动,则需要删除 nacos/data 文件夹,在重新启动会重新创建表。

• MySQL启动:

数据库表config_info、config_info_betahis_config_info中需要新增字段encrypted_data_key ,用来存储每一个配置项加密使用的秘钥。新版本的默认创建表的sql中已经添加该字段。对于目前已经搭建好的 Nacos 使用以下 sql 将字段添加到对应的表中:

一、解决方案:

看提示是数据表缺少encrypted_data_key字段,那就手动为据表添加该字段 为保证用户敏感配置数据的安全,Nacos 提供了配置加密的新特性。降低了用户使用的风险,也不需要再对配置进行单独的加密处理。 数据库表 config_info、config_info_beta、his_config_info 中需要新增字段 encrypted_data_key ,用来存储每一个配置项加密使用的秘钥。新版本的默认创建表的sql中已经添加该字段。

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

ALTER TABLE config_info ADD COLUMN `encrypted_data_key` text NOT NULL COMMENT '秘钥';
alter table config_info_beta add column `config_info_beta` text NOT NULL COMMENT '秘钥';
alter table his_config_info add column `config_info_beta` text NOT NULL COMMENT '秘钥';

参考文档:https://www.dgrt.cn/a/30255.html?action=onClick


分类:Java
标签: nacos
文章目录