麒麟V10桌面版下使用odbc连接失败
【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
请问是我哪里配置的不对么?
评论
iclis09b.so:是 GBase8s 的非线程安全驱动
2,/opt/GBASE/gbase/lib/cli/iclit09b.so 先用t试一下。
2.怀疑为密码报错@符导致,需要转义,可以先修改密码去掉@,尝试连接
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526