python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python连接Kingbase

Python连接Kingbase的实现示例

作者:BUTCHER5

Kingbase是一种开源的数据库管理系统,与Oracle数据库的语法和功能非常相似,本文主要介绍了Python连接Kingbase的实现示例,具有一定的参考价值,感兴趣的可以了解一下

背景

由于之前Py程序连接的MySQL,现在适配国产DB,所以需要修改程序。
按Kingbase官网步骤操作,卡在import ksycopg2 总是报找不到模块错误!

安装psycopg2

后来百度发现使用psycopg2 也可以连接kingbase,结果一样报找不到模块错误!
按网上步骤

pip install psycopg2
pip3 install psycopg2

都不好使,后来得到解决方案,具体如下

yum install python3-devel postgresql-devel*
pip3 install psycopg2

结果可行,但我暂时没用psycopg2 连接kingbase

安装ksycopg2

下载ksycopg2

下载地址:https://www.kingbase.com.cn/downdriven/index.htm
我下载版本:v8r6_python3.6.8_for_ksycopg2_x86_64.tar.gz

保存ksycopg2

查看python模块路径:

在这里插入图片描述

将ksycopg2上传至/root目录下,
解压ksycopg2 到 /usr/local/lib64/python3.6/site-packages 目录下:

tar xf v8r6_python3.6.8_for_ksycopg2_x86_64.tar.gz -C /usr/local/lib64/python3.6/site-packages

加载libpq库文件

编辑/etc/ld.so.conf文件:

vi /etc/ld.so.conf

添加如下代码:

在这里插入图片描述

执行如下代码:

/usr/sbin/ldconfig

验证ksycopg2

在这里插入图片描述

连接kingbase

class KingbaseDb():
    def __init__(self, host, passwd, db):
        try:
            self.conn = ksycopg2.connect(
                host=host,
                port=54321,
                user='root',
                password=passwd,
                database=db
            )
            self.cur = self.conn.cursor()
        except ksycopg2.Error as err:
            logger.error(err)
            sys.exit(-1)

    def __del__(self):
        try:
            self.cur.close()
            self.conn.close()
        except AttributeError:
            pass

    def execute_db(self, sqls):
        try:
            if isinstance(sqls, list):
                for sql in sqls:
                    self.cur.execute(sql)
            else:
                self.cur.execute(sqls)

            self.conn.commit()
        except Exception as e:
            logger.warning(e)
            self.conn.rollback()

到此这篇关于Python连接Kingbase的实现示例的文章就介绍到这了,更多相关Python连接Kingbase内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文