GBase 8s
安装配置
问答

麒麟V10桌面版下使用odbc连接失败

发表于2026-01-05 16:37:21199次浏览18个评论

【GBase版本】:GBase8sV8.8_3.6.3_3X2_x86_64(开发版)

【操作系统】:麒麟V10桌面版

【CPU】:

【问题描述】*:

odbc.ini 与odbcinst.ini 已经配置了配置信息如下

odbcinst.ini 配置:

;---------------------------------------------------------------------------
; GBase ODBC Sample File 
;
; File:        odbcinst.ini
;
;---------------------------------------------------------------------------
[GBase ODBC DRIVER]
Driver=/opt/GBASE/gbase/lib/cli/iclit09b.so
Setup=/opt/GBASE/gbase/lib/cli/iclit09b.so
APILevel=1
ConnectFunctions=YYY
DriverODBCVer=03.51
FileUsage=0
SQLLevel=1
smProcessPerConnect=Y

odbc.ini配置:

;---------------------------------------------------------------------------
; GBase ODBC Sample File
;
; File:        odbc.ini
;
;---------------------------------------------------------------------------
[ODBC Data Sources]
gbase01=GBase ODBC DRIVER

;
; Define ODBC Database Driver's Below - Driver Configuration Section
;
[gbase01]
Driver=/opt/GBASE/gbase/lib/cli/iclis09b.so
;Driver=GBase ODBC DRIVER
Description=GBase ODBC DRIVER
Database=sysmaster
Servername=gbase01
LogonID=gbasedbt
pwd=GBase@123
CLIENT_LOCALE=zh_CN.utf8
DB_LOCALE=zh_CN.utf8
CursorBehavior=0
TRANSLATIONDLL=/opt/GBASE/gbase/lib/esql/igo4a304.so
;
; UNICODE connection Section
;
[ODBC]
;uncomment the below line for UNICODE connection
;UNICODE=UCS-4
;
; Trace file Section
;
Trace=0
TraceFile=/tmp/odbctrace.out
InstallDir=/opt/GBASE/gbase
 

 使用isql测试连接成功,输出信息:

wf@wf:~/testcoreodbc/testcoreodbc$ isql gbase01 gbasedbt GBase@123 -v
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+

测试项目.csproj 配置如下:

<Project Sdk="Microsoft.NET.Sdk">

 <PropertyGroup>
   <OutputType>Exe</OutputType>
   <TargetFramework>net8.0</TargetFramework>
   <ImplicitUsings>enable</ImplicitUsings>
   <Nullable>enable</Nullable>
 </PropertyGroup>

 <ItemGroup>
   <PackageReference Include="System.Data.Odbc" Version="6.0.0" />
 </ItemGroup>

</Project>

odbc连接串如下:

    var connStr = "Driver={GBase ODBC DRIVER};DSN=gbase01;UID=gbasedbt;PWD=GBase@123";
   // 如果不使用DSN方式,以下参数均需要加上,以下参数为缩写格式。
   var connStr2 =
       "Driver=/opt/GBASE/gbase/lib/cli/iclis09b.so;"
       + "Host=127.0.0.1;Port=9088;Protocol=onsoctcp;Server=gbase01;"
       + "Database=sysmaster;Db_locale=zh_CN.utf8;Client_locale=zh_CN.utf8;"
       + "Uid=gbasedbt;Pwd=GBase@123;CursorBehavior=0"
       + "TDLL=/opt/GBASE/gbase/lib/esql/igo4a304.so;";

错误信息如下:

ODBC1错误类型: System.Data.Odbc.OdbcException
ODBC1错误消息: ERROR [H] [
ERROR [H] [
ODBC1完整堆栈: System.Data.Odbc.OdbcException (0x80131937): ERROR [H] [
ERROR [H] [
  at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
  at System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle)
  at System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection, OdbcConnectionString connectionOptions)
  at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
  at System.Data.ProviderBase.DbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
  at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
  at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
  at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
  at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
  at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
  at System.Data.Odbc.OdbcConnection.Open()
  at Program.<<Main>$>g__TestLinux|0_0() in /home/wf/testcoreodbc/testcoreodbc/Program.cs:line 25

请问是我哪里配置的不对么?

 

悬赏:40吉币
回答被发帖人采纳后可获得赏金

评论

登录后才可以发表评论
用户头像
路路路发表于 6个月前
稍等
GBase大圣发表于 6个月前
@路路路:你好,目前尝试各种方法 还是无法连接?请问可以转技术给一下解决方案么?
GBase用户21143发表于 6个月前
从你的配置和错误信息来看,核心问题出在 **.NET ODBC 驱动对 GBase8s 连接参数的兼容性 **、配置文件参数不一致和连接字符串格式上
GBase大圣发表于 6个月前
@GBase用户21143:我按照帖子https://gbasedbt.com/index.php/archives/382/ 配置的
GBase用户21143发表于 6个月前
iclit09b.so:是 GBase8s 的线程安全驱动
iclis09b.so:是 GBase8s 的非线程安全驱动
用户头像
GBase用户28017发表于 6个月前
官方 怎么回答。
用户头像
GBase用户28017发表于 6个月前
还不解决吗?
用户头像
GBase用户28017发表于 6个月前
也为,
GBase大圣发表于 6个月前
官方请给个解决方案啊
用户头像
liaosnet发表于 6个月前
1,;UNICODE=UCS-4 这里 使用UNICODE=UCS-2
2,/opt/GBASE/gbase/lib/cli/iclit09b.so 先用t试一下。
用户头像
GBase用户28017发表于 6个月前
还没连接成功吗?
用户头像
琳大大发表于 5个月前
1.设置环境变量GBASEDBTDIR到csdk安装路径下bin目录,可以正常打印错误信息
2.怀疑为密码报错@符导致,需要转义,可以先修改密码去掉@,尝试连接
最佳回答
GBase用户51884发表于 2个月前
好问题啊。
用户头像
mittens发表于 2个月前
学习了052401
用户头像
mittens发表于 2个月前
学习了052402
用户头像
mittens发表于 2个月前
学习了052403
用户头像
mittens发表于 2个月前
学习了052404
用户头像
mittens发表于 2个月前
学习了052405