首页 > 系统相关 >Windows下python,psycopg2使用连接HGDB

Windows下python,psycopg2使用连接HGDB

时间:2024-01-03 17:36:27浏览次数:34  
标签:Users Windows psycopg2 HGDB highgo Highgo --

瀚高数据库 

目录

环境

文档用途

详细信息



环境

系统平台:N/A

版本:4.5


文档用途

  本文介绍在HGDB使用sm3认证时,python使用psycopg2连接HGDB的方法。


详细信息

  Python连接HGDB可以使用psycopg2、Django,Django是依赖psycopg2的,底层用的都是libpq,pip安装的psycopg2自带libpq。因此在一般情况下pip安装psycopg2后可以直接连接HGDB。在一些情况下HGDB需要使用sm3密码认证方式,此时使用psycopg2自带的libpq是无法连接HGDB的,报错:“authentication method 13 not supported”;可以按照以下方式处理。

  Linux下psycopg2连接HGDB查阅文章:【python应用系统访问瀚高库(APP);ID:018380901】。

  Windows参考以下几个方法:

方法一:更改数据库认证方式

  条件允许的情况下,将HGDB的认证方式由sm3改为md5;一定确认好是否可以修改,修改时必须仔细操作。

方法二:自己编译psycopg2

  1)由于pip安装的psycopg2自带libpq,因此使用“pip install --no-binary :all: psycopg2”安装,使之不自带libpq,安装完毕后,使用HGDB提供的libpq动态库。

  2)将附件中的hgdb文件夹放在任意位置(路径建议只包含中文和数字),并配置环境变量,如:

Windows下python,psycopg2使用连接HGDB_Python

cmd中验证pg_config可以访问到,如:

C:\Users\Highgo>pg_config
    BINDIR = C:/Users/Highgo/highgo/bin
    DOCDIR = C:/Users/Highgo/highgo/doc
    HTMLDIR = C:/Users/Highgo/highgo/doc
    INCLUDEDIR = C:/Users/Highgo/highgo/include
    PKGINCLUDEDIR = C:/Users/Highgo/highgo/include
    INCLUDEDIR-SERVER = C:/Users/Highgo/highgo/include/server
    LIBDIR = C:/Users/Highgo/highgo/lib
    PKGLIBDIR = C:/Users/Highgo/highgo/lib
    LOCALEDIR = C:/Users/Highgo/highgo/share/locale
    MANDIR = C:/Users/Highgo/highgo/man
    SHAREDIR = C:/Users/Highgo/highgo/share
    SYSCONFDIR = C:/Users/Highgo/highgo/etc
    PGXS = C:/Users/Highgo/highgo/lib/pgxs/src/makefiles/pgxs.mk
    CONFIGURE = --enable-thread-safety --enable-nls --with-ldap --enable-FDE --enable-license --with-openssl --with-ossp-uuid --with-libxml --with-libxslt --with-perl
    VERSION = PostgreSQL 12.3


 3)安装Microsoft C++ Build Tools工具,用于源码构建psycopg2。vs_BuildTools下载地址:https://download.visualstudio.microsoft.com/download/pr/67cb4c13-1e6d-4bf5-97ed-93636beebd7d/bbd9e99e837140cc7838ec63d0609c5e63ff43001cfa1e558b48db235f015237/vs_BuildTools.exe;选择需要的组件,如下:

Windows下python,psycopg2使用连接HGDB_python_02


安装过程较长,所占空间比较大。

  4)卸载已安装的psycopg2;

  5)编译构建psycopg2;

C:\Users\Highgo>pip install --no-binary :all: psycopg2
Collecting psycopg2
  Using cached psycopg2-2.9.7.tar.gz (383 kB)
Skipping wheel build for psycopg2, due to binaries being disabled for it.
Installing collected packages: psycopg2
   Running setup.py install for psycopg2 ... done
Successfully installed psycopg2-2.9.7


 6)将附件hgdb中的lib和bin下的文件全部复制到python安装目录下的$PYTHON_HOME\Lib\site-packages\psycopg2下,如:

Windows下python,psycopg2使用连接HGDB_python_03

 7)重新打开cmd,测试python连接数据库,python脚本如下:

import psycopg2
conn = psycopg2.connect(
    host="192.168.17.75",
    port="5867",
    database="highgo",
    user="sysdba",
    password="password"
)
cur = conn.cursor()

cur.execute("SELECT * FROM tbl_sm3")
rows = cur.fetchall()
for row in rows:
    print(row)

cur.execute("INSERT INTO tbl_sm3 (c1, c2) VALUES (%s, %s)", ("1", "2"))
conn.commit()
cur.close()
conn.close()


 8)测试:

C:\Users\Highgo>cd C:\Users\Highgo\Python
C:\Users\Highgo\Python>python testDB.py
(1, '2')
(1, '2')
(1, '2')
(1, '2')


以上实现了sm3认证连接。

 9)常见报错

 > UnicodeEncodeError: ‘ascii’ codec can’t encode character u’\u200e’ in position 13: ordinal not in range(128)

 解决:chcp 65001





标签:Users,Windows,psycopg2,HGDB,highgo,Highgo,--
From: https://blog.51cto.com/u_13646489/9087122

相关文章

  • 提升Windows Server环境安全性:ADAudit Plus的五大关键优势
    在WindowsServer环境中,审计对于解决安全、运营和合规需求至关重要。然而,内置的MicrosoftWindows安全审计工具存在一些限制,包括对专业知识的要求、耗时的流程以及一些功能的缺失。为了克服这些问题,第三方审计解决方案如ManageEngineADAuditPlus变得至关重要。WindowsServer一、......
  • Windows 10, version 22H2 (updated Jun 2023) 中文版、英文版下载
    Windows10,version22H2(updatedJun2023)中文版、英文版下载作者主页:sysin.orgWindows10更新历史记录Windows10,version22H2,alleditions发布日期:2022/10/18版本:Windows10,版本22H2Windows10版本信息2022/10/19从Windows10版本21H2开始,Windows10版本的......
  • Windows 11 22H2 中文版、英文版 (x64、ARM64) 下载 (updated Jun 2023)
    Windows11绕过TPM方法总结,通用免TPM镜像下载(2023年6月更新)在虚拟机、Mac电脑和TPM不符合要求的旧电脑上安装Windows11的通用方法总结作者主页:sysin.org本文要解决的问题:如何安装Windows11虚拟机绕过TPM检测,Windows11ISO虚机直装镜像下载。如何在没有TPM......
  • Cisco Secure Client 5.0.03072 (macOS, Linux, Windows & iOS, Andrord)
    CiscoSecureClient5.0.03072(macOS,Linux,Windows&iOS,Andrord)思科安全客户端(包括AnyConnect)作者主页:sysin.orgCiscoSecureClient(includingAnyConnect)思科安全客户端(包括AnyConnect)安全访问只是开始您的团队需要轻松访问公司资源和私有应用程序。您需要确保您的......
  • Cisco AnyConnect Secure Mobility Client 4.10.07062 (macOS, Linux, Windows)
    CiscoAnyConnectSecureMobilityClient4.10.07062(macOS,Linux,Windows)CiscoSecureClient(包括AnyConnect)作者主页:sysin.org新版已发布:CiscoSecureClient5.0.03072(macOS,Linux,Windows&iOS,Andrord)CiscoSecureClient(includingAnyConnect)思科安全客户端(......
  • Windows系统进程svchost.exe在后台偷偷下载数据消耗流量
    手机开热点给电脑用,发现电脑网络很慢,用360流量防火墙检查流量情况,发现svchost.exe一直在偷偷搞我流量,整了1个多G,心痛。又是流氓东西。网上查了一下,svchost.exe是系统进程,还不能随便删除停用啥的,于是只能想办法禁止它使用网络。目前我的处理方法是在360流量防火墙上把svchost.exe的......
  • Windows 11 简体中文版、英文版(64-bit、ARM64)下载(2022 年 1 月发布)
    Windows11最新正式版,2021年12月更新作者主页:www.sysin.org全新推出Windows11全新Windows体验,让您与热爱的人和事物离得更近。获得全新视角Windows11提供一个让人平静而富有创意的空间,全新体验引导您全力追逐热爱。从焕然一新的开始菜单,到与您关心的人、关注的消息、游戏......
  • 如何禁止 Firefox 自动更新 (macOS, Linux, Windows)
    作者主页:sysin.org如何禁用MozillaFireFox自动更新如何禁用MicrosoftEdge自动更新如何禁用GoogleChrome自动更新FirefoxformacOS方法一:配置策略文件获取最新或者对应版本的策略模板:https://github.com/mozilla/policy-templates/releases自动更新策略描述如下:{"polic......
  • Windows Server 2025 简体中文版下载(Inside Preview)
    下一代Windows11Server作者:gc,主页:www.sysin.org我们知道WindowsServer2022任然属于Windows10Server的范畴。现在,下一代基于Windows11的WindowsServer已经可以公开下载,根据A3的产品历史发行规律,基本上就是WindowsServer2025。直观体验:启动Logo和系统UI都......
  • Windows Server 2022 英文版、简体中文版下载 (updated Dec 2021)(2022 年 1 月发布)
    WindowsServer2022正式版,2021年12月更新2021.09.01更新,微软官方确认该版本为正式版:WindowsServer2022nowgenerallyavailable—deliversinnovationinsecurity,hybrid,andcontainers2021.08.19,微软在VLSC和MSDN发上发布了WindowsServer2022镜像下载,虽然并......