gbase8s 环境搭建和python连接gbase8s

最近因为一些业务,接触到了国产操作系统和国产数据库。

真是让人.......无语!

所谓国产,拿别人东西过来改改便是国产了。

比如 南大通用数据库,GBASE8S,就是用 informix 改了改..........

 

使用GBASE8S,记录下 各种配置。

假设 GBASE8S 安装在  /opt/gbase8s目录下

 

1、新建用户组和用户 gbasedbt

2、设置环境变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
GBASEDBTDIR=/opt/gbase8s
GBASEDBTSERVER=ol_gbasedbt12
ONCONFIG=onconfig.ol_gbasedbt12
GBASEDBTSQLHOSTS=/opt/gbase8s/etc/sqlhosts.ol_gbasedbt12
GL_USEGLU=1
DB_LOCALE=zh_CN.utf8
CLIENT_LOCALE=zh_CN.utf8
<strong>ODBCINI</strong>=/opt/gbase8s/etc/odbc.ini
 
<strong>LD_LIBRARY_PATH</strong>=$GBASEDBTDIR/lib:$GBASEDBTDIR/lib/cli:$GBASEDBTDIR/lib/esql
PATH=$GBASEDBTDIR:$LD_LIBRARY_PATH:$GBASEDBTDIR/bin:$GBASEDBTDIR/extend/krakatoa/jre/bin:$PATH
 
#dbtpy需要该参数
<strong>CSDK_HOME</strong>=$GBASEDBTDIR
 
 
export GBASEDBTDIR GBASEDBTSERVER ONCONFIG GBASEDBTSQLHOSTS GL_USEGLU ODBCINI LD_LIBRARY_PATH CSDK_HOME  PATH

3、sqlhosts.ol_gbasedbt12 的配置

1
<strong>ol_gbasedbt12</strong>  onsoctcp  172.14.23.12    9899

 

4、/opt/gbase8s/etc/odbc.ini  配置如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[ODBC Data Sources]
testdb=GBase ODBC DRIVER
;
; Define ODBC Database Driver's Below - Driver Configuration Section
;
<strong>[testdb]</strong>
Driver=/opt/gbase8s/lib/cli/iclis09b.so
Description=GBase ODBC DRIVER
<strong>Database</strong>=d5000
<strong>LogonID</strong>=gbasedbt
<strong>pwd</strong>=123456
<strong>Servername</strong>=ol_gbasedbt12
CursorBehavior=0
<strong>CLIENT_LOCALE</strong>=en_us.8859-1
<strong>DB_LOCALE</strong>=en_us.8859-1
GL_USEGLU=1
TRANSLATIONDLL=/opt/gbase8s/lib/esql/igo4a304.so
 
[ODBC]
Trace=1
TraceFile=/tmp/odbctrace1.out
InstallDir=/opt/gbase8s
TRACEDLL=/opt/gbase8s/lib/cli/idmrs09a.so

 

以上配置,注意几个地方

a)LogonID 就是为 gbase8s 分配的用户

b)Servername 即是 第三条 配置的名称

c)CLIENT_LOCALE  和 DB_LOCALE 默认是 en_us.8859-1

 

5、如果 使用 DbtPy (python3)远程链接 gbase8s ,

     需要 安装 python3  python3-devel 

     python版本不高于3.7

     pip install DbtPy 

     

1
2
3
4
5
6
7
8
9
10
import sys
import DbtPy
print("Python DbtPy测试程序开始运行.\n")
connectStr="PROTOCOL=onsoctcp;HOST=172.14.23.12;SERVICE=9899;SERVER=ol_gbasedbt12;DATABASE=testdb;DB_LOCALE=en_us.8859-1;CLIENT_LOCALE=en_us.8859-1"
 
conn=DbtPy.connect(connectStr, "gbasedbt", "123456")
 
stmt = DbtPy.exec_immediate(conn, "select * from YK_YX_RELY_AVC limit 3")
data = DbtPy.fetch_assoc(stmt)
print(data)

 

6、也可以使用 jaydebeapi 链接 gbase8s .  

   不过,这里需要下载 gbasedbtjdbc_3.3.0_2.jar  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import sys
import jaydebeapi
 
print("\nPython JayDeBeApi JDBC 测试程序开始运行.\n")
conn = jaydebeapi.connect("com.gbasedbt.jdbc.Driver",
                           "jdbc:gbasedbt-sqli://172.16.97.98:8900/testdb:GBASEDBTSERVER=ol_gbasedbt12;DB_LOCALE=en_us.8859-1;CLIENT_LOCALE=en_us.8859-1;IFX_LOCK_MODE_WAIT=60",
                           ["gbasedbt", "123456"],
                           "/home/gbasedbt/gbasedbtjdbc_3.3.0_2.jar")
 
 
mycursor = conn.cursor()
mycursor.execute("select * from YK_YX_RELY_AVC limit 3")
rows = mycursor.fetchall()
print(rows)
mycursor.close()
conn.close()

 

7、说明:

     A服务器是Gbase8s 服务器,B服务器是应用服务器,上述5和6 即 run在 B服务器上 。

     B服务器不需要安装Gbase8s,但是需要安装 Gbase8s 的 CSDK 。 配置信息  只需要配置 上述2 和 3 

     CSDK 从官网下载的有问题。 可以直接从 A服务器 copy  /opt/gbase8s  目录 到  B 服务器上即可。 但是  /opt/gbase8s  太大。可以不用 copy  storage 目录即可。

 

8、查看 CSDK 是否成功?

     esql  -V   返回如下信息 则 成功。

1
2
GBase CSDK Version 4.10, GBASE-ESQL Version 4.10.FC4G1_2.0.1A2_2
Software Serial Number AAA#B000000

  

posted on   asp114  阅读(1068)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示