Nacos Server: 2.1.0
Model: standalone
我启动Nacos server后,启动过程中提示config_info表中缺少encrypted_data_key字段,然后我就手动加了这个字段encrypted_data_key(varchar(255)).但是无法创建新的配置
Nacos Server: 2.1.0
Model: standalone
我启动Nacos server后,启动过程中提示config_info表中缺少encrypted_data_key字段,然后我就手动加了这个字段encrypted_data_key(varchar(255)).但是无法创建新的配置
分别在config_info 和 history_config_info 这两个表里添加这两个字段就可以了, 应该是官方的docker脚本里没更新进去 我用的standalone-mysql8
非常感谢,我在对应表加了字段就可以了
新建配置发生同样的错误,但是config_info 和 his_config_info 表已经存在encrypted_data_key 字段。仍旧是报错 Nacos Server: 2.1.0 Model: K8s
取消 encrypted_data_key 必填就行了
受众这么广的库新版本竟然会有这种问题就很迷
大家在使用新版的时候可以关注下社区做什么修改,测试通过后在进行升级 https://nacos.io/zh-cn/docs/config-encryption.html
我使用docker部署的nacos 2.1.0 和MySQL 5.7 ,在config_info 和 his_config_info 表中添加了encrypted_data_key 解决的问题。
异常信息是这样的
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 类型不能设置默认值。
设置为非必填
解决方案 为保证用户敏感配置数据的安全,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 '秘钥'
遇到 docker 问题 可以参考我这边改的一版 https://github.com/onewe/nacos-docker