一、表象:
页面1:
报错1:
caused: PreparedStatementCallback; bad SQL grammar [SELECT id,data_id,group_id,tenant_id,app_name,content,md5,gmt_create,gmt_modified,src_user,src_ip,c_desc,c_use,effect,type,c_schema,encrypted_data_key FROM config_info WHERE data_id=? AND group_id=? AND tenant_id=?]; nested exception is java.sql.SQLSyntaxErrorException: Unknown column 'encrypted_data_key' in 'field list';caused: Unknown column 'encrypted_data_key' in 'field list';
页面2:
报错2:
caused: PreparedStatementCallback; bad SQL grammar [INSERT INTO his_config_info (id,data_id,group_id,tenant_id,app_name,content,md5,src_ip,src_user,gmt_modified,op_type,encrypted_data_key) VALUES(?,?,?,?,?,?,?,?,?,?,?,?)]; nested exception is java.sql.SQLSyntaxErrorException: Unknown column 'encrypted_data_key' in 'field list';caused: Unknown column 'encrypted_data_key' in 'field list';
二、分析
1、相关版本
服务 | 版本 |
---|---|
Nacos Server | 2.1.0 |
Mysql | 8.0.29 |
查询相关文档,建议:
Nacos Server 1.4.0以下使用的Mysql驱动是8.0以下的,1.4.0以上使用的驱动就是8.0以上的
2、官方文档
建表SQL语句应查看对应Nacos Server
的tag
版本,我用的是1.4.0
的SQL所以产生问题。2.1.0
可参考:nacos-db-2-1-0.sql
三、解决
按照官方文档重新建表,或直接补全列:
-- config_info 表
alter table config_info add encrypted_data_key varchar(255);
-- his_config_info 表
alter table his_config_info add encrypted_data_key varchar(255);
四、结果
再次重试成功: