GBase 8s
安装配置
问答

golang,配置GCI之后无法成功

发表于2025-05-06 23:30:44276次浏览11个评论

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

【GBase版本】:GBase 8s

【操作系统】:linux centos7

【CPU】:x86_64

【问题描述】*:linux x86_64 centos7 ,

1、先给安装了GBase 8s服务端成功,使用DBeaver工具可以连接成功

2、然后下载官方的GBaseGCI_V8.8_x86.7z,GCI这一步只是解压存放到了 /opt/go/GCI

3、然后创建/opt/go/PC/gbase8s.pc,文件内容是:

prefix=/opt/go/GCI

includedir=${prefix}/include/

libdir=${prefix}/lib/

 

Name: gbase8s

Description: gbase8s Instant Client

Version: 8.8

Cflags: -I${includedir}

Libs: -L${libdir} -lclntsh_gbase

4、修改环境变量:

export LD_LIBRARY_PATH=/opt/go/GCI/relyon/lib:/opt/go/GCI/relyon/lib/esql:/opt/go/GCI/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/opt/go/PC/

5、golang语言使用gorm设置DSN来连接数据库,就成功不了,提示如下:

提示这个长度限制,实际把连接数据库的配置信息改了,也是提示这个错误。应该还是驱动没成功,不知道是否有其他驱动?或者是我少了其他步骤吗?

评论

登录后才可以发表评论
用户头像
maktub发表于 1年前
下载的GCI版本比较低,从这个地址[https://pan.baidu.com/s/1IOlMBdOwjBdjLAoY1Zugfg?pwd=2t1x#list/path=%2F]下载新的GCI包,替换一下试试看。
 等烟雨发表于 1年前
@maktub:还有更新的版本吗,现在的这个条件限制还是很大。很多在DBeaver可以成功执行的查询语句,用GCI还是不行,比如:SELECT * FROM air_task as i WHERE i.delete_time is null ORDER BY i.id desc,GCI会报错:ERROR:[GCI] miss convert function, external data type:189, internal data type:115.
用户头像
maktub发表于 1年前
@ 等烟雨:这个应该是数据库连接成功了,你是用了一些特殊的数据类型或者大字段类型吧,现在GCI对有些类型支持的工作还在完善。
用户头像
maktub发表于 1年前
@ 等烟雨:方便给下你的demo和表结构吗,我们复现下;或者你看下是否使用了大对象或者日期时间格式是否正确

 等烟雨发表于 1年前
@maktub:之前是json类型的字段,我换成text类型可以了。现在除了GCI,还有别的驱动方式吗,有没有兼容mysql的驱动方式。。
 等烟雨发表于 1年前
@maktub:关于gitee.com/GBase8s/gorm-gbase,是不是也有更新的版本了?
用户头像
maktub发表于 1年前
@ 等烟雨:目前你看到的就是最新版本了,有什么问题可以反馈下,有开发版本我们在做内部测试。
 等烟雨发表于 1年前
@maktub:还有一个奇怪的问题,text类型的字段,无论存储的什么内容,查询出来都会多一个字符,\u0000
用户头像
maktub发表于 1年前
@ 等烟雨:用最新版本的[https://pan.baidu.com/s/1q_Bs39B2FIZ_sKQxQT4zaA?pwd=7h9q]试下吧。这个应该可以,也支持json等类型,但是如果字段特别大的话,可以用clob或者blob类型,这两个类型支持的比较好。
最佳回答
半夏发表于 2个月前
学习中,还不清楚。