linux odbc怎么添加gbase数据库?我已经试过chatgpt了,按照chatgpt的方法也不行
以下是我的操作记录和配置和报错信息
```python
[root@shell bin]# export
declare -x GBASEDBTDIR="/opt/gbase8s-odbc-driver"
declare -x GBASEDBTSERVER="afcdbserver"
declare -x GBASEDBTSQLHOSTS="/opt/gbase8s-odbc-driver/etc/sqlhosts.odbc"
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="shell"
declare -x KDEDIRS="/usr"
declare -x LANG="en_US.UTF-8"
declare -x LD_LIBRARY_PATH="/opt/gbase8s-odbc-driver/lib:/opt/gbase8s-odbc-driver/lib/cli:/opt/gbase8s-odbc-driver/lib/esql"
declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:"
declare -x MAIL="/var/spool/mail/root"
declare -x ODBCINI="/etc/odbc.ini"
declare -x OLDPWD="/usr/local/unixODBC-2.3.12/odbcinst"
declare -x PATH="/opt/gbase8s-odbc-driver/bin:/usr/lib64/qt-3.3/bin:/root/perl5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/python3/bin:/root/bin"
declare -x PERL5LIB="/root/perl5/lib/perl5:"
declare -x PERL_LOCAL_LIB_ROOT=":/root/perl5"
declare -x PERL_MB_OPT="--install_base /root/perl5"
declare -x PERL_MM_OPT="INSTALL_BASE=/root/perl5"
declare -x PWD="/usr/local/bin"
declare -x QTDIR="/usr/lib64/qt-3.3"
declare -x QTINC="/usr/lib64/qt-3.3/include"
declare -x QTLIB="/usr/lib64/qt-3.3/lib"
declare -x QT_GRAPHICSSYSTEM_CHECKED="1"
declare -x QT_PLUGIN_PATH="/usr/lib64/kde4/plugins:/usr/lib/kde4/plugins"
declare -x SELINUX_LEVEL_REQUESTED=""
declare -x SELINUX_ROLE_REQUESTED=""
declare -x SELINUX_USE_CURRENT_RANGE=""
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_TTY="/dev/pts/4"
declare -x TERM="xterm"
declare -x USER="root"
declare -x XDG_DATA_DIRS="/root/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share"
declare -x XDG_RUNTIME_DIR="/run/user/0"
declare -x XDG_SESSION_ID="255"
[root@shell bin]# esql -V
GBase CSDK Version 4.10, GBASE-ESQL Version 4.10.FC4G1_3.0.0
Software Serial Number AAA#B000000
[root@shell bin]# cat /opt/gbase8s-odbc-driver/etc/sqlhosts.odbc
101db onsoctcp 11.11.111.11 9088
[root@shell bin]# cat /etc/odbc.ini
[ODBC Data Sources]
#gbase=GBase ODBC DRIVER
# Define ODBC Database Driver's Below - Driver Configuration Section
[101db]
Driver=/opt/gbase8s-odbc-driver/lib/cli/iclis09b.so
#Driver=GBase ODBC DRIVER
Description=GBase ODBC DRIVER
Server=11.11.111.11
Port=9088
Database=afcdb
LogonID=afcdb
pwd=afcdb@123
Servername=101db
CursorBehavior=0
CLIENT_LOCALE=zh_CN.utf8
DB_LOCALE=zh_CN.utf8
TRANSLATIONDLL=/opt/gbase8s-odbc-driver/lib/esql/igo4a304.so
#UNICODE connection Section
[ODBC]
#uncomment the below line for UNICODE connection
UNICODE=UCS-2
#Trace file Section
Trace=0
TraceFile=/tmp/odbctrace.out
InstallDir=/opt/gbase8s-odbc-driver
TRACEDLL=idmrs09a.so
[root@shell bin]# cat /etc/odbcinst.ini
# Example driver definitions
# Driver from the postgresql-odbc package
# Setup from the unixODBC package
[PostgreSQL]
Description = ODBC for PostgreSQL
Driver = /usr/lib/psqlodbcw.so
Setup = /usr/lib/libodbcpsqlS.so
Driver64 = /usr/lib64/psqlodbcw.so
Setup64 = /usr/lib64/libodbcpsqlS.so
FileUsage = 1
# Driver from the mysql-connector-odbc package
# Setup from the unixODBC package
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/libmyodbc5.so
Setup = /usr/lib/libodbcmyS.so
Driver64 = /usr/lib64/libmyodbc5.so
Setup64 = /usr/lib64/libodbcmyS.so
FileUsage = 1
[ODBC Drivers]
GBase ODBC DRIVER=Installed
[GBase ODBC DRIVER]
Driver=/opt/gbase8s-odbc-driver/lib/cli/iclit09b.so
Setup=/opt/gbase8s-odbc-driver/lib/cli/iclit09b.so
APILevel=1
ConnectFunctions=YYY
DriverODBCVer=03.51
FileUsage=0
SQLLevel=1
smProcessPerConnect=Y
[root@shell tmp]# odbcinst -d -q
[PostgreSQL]
[MySQL]
[ODBC Drivers]
[GBase ODBC DRIVER]
[root@shell tmp]#
[root@shell bin]# odbcinst -j
unixODBC 2.3.1
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /etc/odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
[root@shell bin]# isql -v 101db
[S1000][unixODBC][GBasedbt][GBasedbt ODBC Driver][GBasedbt]Server 11.11.111.11 is not listed as a dbserver name in sqlhosts.
[ISQL]ERROR: Could not SQLConnect
[END] 2024/2/23 8:35:17
后面我根据chatgpt的方法修改了一次还是报错
[ODBC Data Sources]
afc = GBase ODBC DRIVER
[afc]
Description = GBase ODBC DRIVER
Driver = /opt/gbase8s-odbc-driver/lib/cli/iclis09b.so
Server = 11.11.111.11
Port = 9088
Database = afcdb
LogonID = afcdb
pwd = afcdb@11
CursorBehavior = 0
CLIENT_LOCALE = zh_CN.utf8
DB_LOCALE = zh_CN.utf8
TRANSLATIONDLL = /opt/gbase8s-odbc-driver/lib/esql/igo4a304.so
[root@shell tmp]# cat /etc/odbc.ini
[ODBC Data Sources]
afc = GBase ODBC DRIVER
afcdb onsoctcp 11.11.111.11 9088
[afc]
Description = GBase ODBC DRIVER
Driver = /opt/gbase8s-odbc-driver/lib/cli/iclis09b.so
Server = afcdb
Port = 9088
Database = afcdb
LogonID = afcdb
pwd = afcdb@11
CursorBehavior = 0
CLIENT_LOCALE = en_US.utf8
DB_LOCALE = en_US.utf8
TRANSLATIONDLL = /opt/gbase8s-odbc-driver/lib/esql/igo4a304.so
[root@shell tmp]# cat /opt/gbase8s-odbc-driver/etc/sqlhosts.odbc
afcdb onsoctcp 11.11.111.11 9088
[root@shell tmp]# isql -v afc
[S1000][unixODBC][GBasedbt][GBasedbt ODBC Driver][GBasedbt]Unable to load locale categories.
[ISQL]ERROR: Could not SQLConnect
[root@shell tmp]# isql -v afc afcdb afcdb@11
[S1000][unixODBC][GBasedbt][GBasedbt ODBC Driver][GBasedbt]Unable to load locale categories.
odbc的日志如下
[root@shell tmp]# cat odbctrace.out
ppid=00000c31,pid=00000000 ENTER SQLSetEnvAttr
SQLHENV 0x00EF8A10
SQLINTEGER 200
SQLPOINTER 0x00000002
SQLINTEGER 0
ppid=00000c31,pid=00000000 EXIT SQLSetEnvAttr
SQLHENV 0x00EF8A10
SQLINTEGER 200
SQLPOINTER 0x00000002
SQLINTEGER 0 with return code 0 (SQL_SUCCESS)
ppid=00000c31,pid=00000000 ENTER SQLGetEnvAttr
SQLHENV 0x00EF8A10
SQLINTEGER 200
SQLPOINTER 0x7FFD9737AA5C
SQLINTEGER 139728171040768
SQLINTEGER * 0x7F154B4B38C3
ppid=00000c31,pid=00000000 EXIT SQLGetEnvAttr
SQLHENV 0x00EF8A10
SQLINTEGER 200
SQLPOINTER 0x7FFD9737AA5C
SQLINTEGER 139728171040768
SQLINTEGER * 0x7F154B4B38C3 with return code 0 (SQL_SUCCESS)
ppid=00000c31,pid=00000000 ENTER SQLAllocHandle
SQLSMALLINT 2
SQLHANDLE 0x00ef8a10
SQLHANDLE * 0x00ee03f0
ppid=00000c31,pid=00000000 EXIT SQLAllocHandle
SQLSMALLINT 2
SQLHANDLE 0x00ef8a10
SQLHANDLE * 0x00ee03f0 with return code 0 (SQL_SUCCESS)
ppid=00000c31,pid=00000000 ENTER SQLConnectW
SQLHDBC 0x00F07790
SQLWCHAR 1
SQLSMALLINT -3
SQLWCHAR * (null)
SQLSMALLINT -3
SQLWCHAR * (null)
SQLSMALLINT -3
ppid=00000c31,pid=00000000 EXIT SQLConnectW
SQLHDBC 0x00F07790
SQLWCHAR 1
SQLSMALLINT -3
SQLWCHAR * (null)
SQLSMALLINT -3
SQLWCHAR * (null)
SQLSMALLINT -3 with return code -1 (SQL_ERROR)
ppid=00000c31,pid=00000000 ENTER SQLGetDiagRecW
,SQLSMALLINT 2
SQLHANDLE 0x00F07790
SQLSMALLINT 1
SQLWCHAR *
SQLINTEGER * 0x7FFD9737B42C
SQLWCHAR * SQLConnectW
SQLHDBC 0x00F07790
SQLWCHAR 1
SQLSMALLINT -3
SQLWCHAR * (null)
SQLSMALLINT -3
SQLWCHAR * (null)
SQLSMALLINT -3
SQLSMALLINT 2056
SQLSMALLINT * 0x7FFD9737B426
ppid=00000c31,pid=00000000 EXIT SQLGetDiagRecW
,SQLSMALLINT 2
SQLHANDLE 0x00F07790
SQLSMALLINT 1
SQLWCHAR * S
SQLINTEGER * 0x7FFD9737B42C
SQLWCHAR * [
SQLSMALLINT 2056
SQLSMALLINT * 0x7FFD9737B426 with return code 0 (SQL_SUCCESS)
ppid=00000c31,pid=00000000 ENTER SQLGetDiagRecW
,SQLSMALLINT 2
SQLHANDLE 0x00F07790
SQLSMALLINT 2
SQLWCHAR * S
SQLINTEGER * 0x7FFD9737B42C
SQLWCHAR *
SQLSMALLINT 2056
SQLSMALLINT * 0x7FFD9737B426
ppid=00000c31,pid=00000000 EXIT SQLGetDiagRecW
,SQLSMALLINT 2
SQLHANDLE 0x00F07790
SQLSMALLINT 2
SQLWCHAR * S
SQLINTEGER * 0x7FFD9737B42C
SQLWCHAR *
SQLSMALLINT 2056
SQLSMALLINT * 0x7FFD9737B426 with return code 100 (SQL_NO_DATA_FOUND)
ppid=00000c31,pid=00000000 ENTER SQLFreeHandle
SQLSMALLINT 2
SQLHANDLE 0x00f07790
ppid=00000c31,pid=00000000 EXIT SQLFreeHandle
SQLSMALLINT 2
SQLHANDLE 0x00000000 with return code 0 (SQL_SUCCESS)
ppid=00000c31,pid=00000000 ENTER SQLFreeHandle
SQLSMALLINT 1
SQLHANDLE 0x00ef8a10
ppid=00000c31,pid=00000000 EXIT SQLFreeHandle
SQLSMALLINT 1
SQLHANDLE 0x00000000 with return code 0 (SQL_SUCCESS)
```