暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
openGauss的Python驱动psycopg2 使用方法.docx
513
3页
2次
2023-10-20
免费下载
(openGauss)
Python
驱动
psycopg2
使用方法
psycopg2
介绍
psycopg2
是一款
PostgreSQL
Python
驱动包,是
PG
官方唯一指定与支
持的
Python
驱动,也是使用最广泛的、最稳定的
PG Python driver.
psycopg2
openGauss
上的问题
openGauss
是基于
PGXC
演进而来的,由于
openGauss
对原生
PG
的通信
协议进行了安全加固,这导致与
PG
的默认通信协议互相不兼容了,因此,使
psycpog2
PG
原生版本默认是不能连接
GaussDB
的。会报类似下述错
误:
通过修改
GUC
进行规避
涉及的
GUC
参数是
password_encryption_type
PG
默认的加密方式是
md5
,由于
md5
已经不安全了,根据公司的安全可信要求,
openGauss
sha256,
并且默认是
sha256
的加密方式,这就导致了上述报错。但是
openGauss
并没有删除
md5
的加密和验证逻辑,因此,是可以通过修改该
GUC
参数开启
md5
加密方式的。
开启方法:
gs_guc reload -D $PGDATA -c "password_encryption_type = 1"
一定要在设置完上述参数后,再新建用户
.
然后就可以使用该新建用户登录数据库了。
通过替换
libpq
解决问题
使用
md5
是存在一点点风险的,如果想要使用更安全的加密算法,则必须要
替换
PG
原生的
libpq
了。方法如下:
1.
通过
pip
安装
PG
python
驱动:
pip install psycopg2-binary
2.
切换到
psycopg2
的安装目录中,一般是在
/$PYTHONINSTALL/lib/pythonx.x/site-
packages/psycopg2
3.
执行
ldd ./_psycopg.cpython-37m-x86_64-linux-gnu.so
,
该文件名供参考
4.
openGauss
lib
目录下的
libpq
及相关依赖
so
文件拷过来,替换掉此处
PG
原生的
同名文件即可。
通过重新编译
psycopg2
解决问题
除手动替换之外,还可以在已经安装好
openGauss
的环境中通过
psycopg2
的源代码编译出包,这样经过编译的
psycopg2
包就会自带
openGauss
libpq
及其依赖文件,也更方便打包出包。
注意
1. 1.
如果环境中已经安装过
PG
了,要确保
openGauss
库文件的路径更优先,即
LD_LIBRARY_PATH
中的位置在前。
2.
2. libpq.so
还有很多依赖文件,这些文件包括一些算法库等,如果需要发布,要一起发布。
可通过
ldd
命令查看依赖列表。
编译方法
1. 1.
在环境中安装
openGauss
,并配置好环境变量;
2. 2.
下载
psycopg2
的源代码,切换到源代码根目录中;
3. 3.
执行
python setup.py build
命令
4. 4.
此时一般会报错,提示内容是版本校验不匹配,通过修改
setup.py
中的相应位置,把
这个错屏蔽掉即可。也可以通过
sed
命令进行版本号替换(大约
440
行的位置):
sed -i "s/(pgmajor, pgminor, pgpatch)/(9, 2, 4)/g" setup.py
of 3
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜