在 Ubuntu 环境下使用 Python 对接国产金仓数据库 KingbaseES,核心在于驱动适配与连接配置。本文通过实战演示如何安装 ksycopg2 驱动、配置环境变量,并封装通用管理类完成数据的增删改查操作。
1. 环境准备与驱动安装
KingbaseES 提供了基于 DB API 2.0 规范的 ksycopg2 驱动,具备线程安全特性。该驱动通常作为 C 程序库的包装器存在,性能与安全性均有保障。需要注意的是,驱动版本需与当前 Python 大版本严格对应(例如 Python 3.8 需匹配对应的 3.8.x 驱动)。
1.1 获取驱动
前往金仓官网下载页面,根据系统架构(如 Linux x64)和 Python 版本选择对应的压缩包。解压后通常会包含针对不同 Python 版本的子目录,确保选中与你环境一致的文件夹。
1.2 安装配置
将解压后的 ksycopg2 文件夹复制到 Python 的模块搜索路径中。若不确定路径位置,可运行以下代码查看:
import sys
print(sys.path)
假设输出包含 /usr/lib/python3/dist-packages,则将驱动文件上传至该目录。此外,还需将 KingbaseES 的 libkci 库路径添加到环境变量中,否则运行时可能报错找不到动态链接库:
export LD_LIBRARY_PATH=/kingbase/data/KESRealPro/V009R002C012/Server/lib:$LD_LIBRARY_PATH
如果不确定库文件位置,可通过 ps -ef | grep kingbase 命令查找进程启动参数中的路径。最后验证安装是否成功:
import ksycopg2
print("ksycopg2 驱动安装成功")
2. 连接与基础类封装
连接数据库需要提供库名、用户名、密码、主机及端口。为了后续操作的便捷性,建议先封装一个管理基类,统一处理连接、游标及事务提交。
import ksycopg2
from datetime import datetime
class KingbaseESManager:
def __init__(self, dbname, user, password, host, port):
self.conn = None
self.db_params = {
"database": dbname,
"user": user,
"password": password,
"host": host,
"port": port
}
def ():
:
.conn = ksycopg2.connect(**.db_params)
()
Exception e:
()
():
.conn:
.conn.close()
()
():
cursor = .conn.cursor()
:
params:
cursor.execute(sql, params)
:
cursor.execute(sql)
results = cursor.fetchall()
results
Exception e:
()
:
cursor.close()
():
cursor = .conn.cursor()
:
params:
cursor.execute(sql, params)
:
cursor.execute(sql)
.conn.commit()
affected_rows = cursor.rowcount
()
affected_rows
Exception e:
.conn.rollback()
()
-
:
cursor.close()


