mysql 迁移金仓,sys_use表查询报错,指定search_path后任然报错的问题
mysql 迁移金仓,sys_use表查询报错,指定search_path后任然报错的问题
- 背景
- 现象
- 尝试解决办法
- 发现根本原因
- 验证隐藏模式sys_catalog
刚使用金仓,遇到这个问题,耽误了一下午,希望能帮助其他初学者节约时间。
背景
springboot项目国产化改造,从mysql 迁移到 金仓。
sys_user表查询报错,查找原因及解决办法。
现象
1、报错提示id、password等等字段不存在
2、怀疑是其它模式中有sys_user表,但是逐个模式打开后发现没有sys_user表(当时感觉很无语…)
尝试解决办法
以下两个方法均没有解决问题
1、指定数据库search_path
SET search_path TO schema1, schema2, public;
2、在jdbc连接配置中指定currentSchema=public
url: jdbc:kingbase8://192.168.1.1:54321/test?currentSchema=public&......
发现根本原因
1、金仓有一个隐藏的模式:sys_catalog,金仓的可视化工具是不显示的(真感觉有点坑)
2、在指定jdbc连接时,要显示将模式sys_catalog,排在自己要用的模式后面,不然实际查询时,仍然先查询的sys_catalog模式
url: jdbc:kingbase8://192.168.1.1:54321/test?currentSchema=public,sys_catalog&......
验证隐藏模式sys_catalog
指定模式名查询表,能正常查询: