4.1. Python使用gbase8sdb方式连接到数据库(Linux)

本章节将介绍Python程序通过gbase8sdb连接到GBase 8s数据库的方式。
gbase8sdb依赖GSDK 1.1.x版本,支持的 GBase 8s 数据库版本:GBase 8s V8.8_3.6.2版本及以上。

4.1.1. 示例环境介绍

  • 操作系统:Ubuntu 22.04.3 LTS (x86_64)

  • 数据库版本:GBase 8s v8.8_3.6.3_3x2_1

  • Python3版本:Python 3.10.12 (系统自带)

  • gbase8sdb版本:0.2.2 (https://pypi.org/project/gbase8sdb)

4.1.2. 安装GSDK

安装目录为/opt/GSDK
参考:GSDK安装

配置环境变量

export GSDK_PATH=/opt/GSDK
export LD_LIBRARY_PATH=${GSDK_PATH}/lib:$LD_LIBRARY_PATH
export GBASEDBTDIR=${GSDK_PATH}/lib

4.1.3. 确认安装python3及版本

确认已经安装python3和pip3

root@netsky:~# python3 --version
Python 3.10.12

root@netsky:~# pip3 --version
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)

如果没有安装,建议使用apt -y install python3来安装。

4.1.4. 安装gbase8sdb

gbase8sdb:支持的 Python 版本:3.8 至 3.13,支持的 GBase 8s 数据库版本:GBase 8s V8.8_3.6.2版本及以上,依赖 GSDK 1.1 版本。

root@netsky:~# pip3 install gbase8sdb

确认已经安装

root@netsky:~# pip3 list | grep gbase8sdb
gbase8sdb              0.2.2

4.1.5. 编写测试代码并执行测试

测试代码Python3Sample.py

import gbase8sdb

# 生成dsn
dsn = gbase8sdb.makedsn(
    server_name="gbase01",          # 数据库实例名称
    db_name="testdb",               # 数据库名称
    host="192.168.0.212",           # 数据库实例所在服务器的IP地址或域名
    port=13633,                     # 数据库实例的端口号
    db_locale='zh_CN.utf8'          # 数据库字符集
)
user = "gbasedbt"                   # 数据库用户名
password = "GBase123$%"             # 数据库用户密码

# 创建数据库连接
conn = gbase8sdb.connect(dsn, user, password)

print("Connection succeed!");

# 创建游标对象
cursor = conn.cursor()

sqlstr = "drop table if exists company";
cursor.execute(sqlstr);
print("drop table company succeed!");

sqlstr = "create table company(coid serial,coname varchar(255),coaddr varchar(255), primary key(coid))";
cursor.execute(sqlstr);
print("create table company succeed!");

sqlstr = "insert into company values(0,?,?),(0,?,?)";
cursor.execute(sqlstr,("GBase","TJ","GBase BeiJing","BJ"))
conn.commit()
print("insert table company succeed!");

sqlstr = "select * from company";
cursor.execute(sqlstr);
print(cursor.fetchall())
print("select table company succeed!");

cursor.close()
conn.close()

执行测试

root@netsky:~# python3 Python3Sample.py
Connection succeed!
drop table company succeed!
create table company succeed!
insert table company succeed!
[(1, 'GBase', 'TJ'), (2, 'GBase BeiJing', 'BJ')]
select table company succeed!

最后更新日期:2025-08-20