windows环境下python连接openGauss数据库

news2024/12/22 23:08:13

文章目录

  • 一、python 介绍
  • 二、Python下载及安装
  • 三、openGauss Connectors (Psycopg2) 介绍
  • 四、openGauss Connectors (Psycopg2)下载并初始化
  • 五、连接并访问openGauss数据库
  • 六、问题总结(FAQ)

一、python 介绍

python最新版
windows python是款面向对象、直译式计算机程序设计语言,同时也是一种功能强大而完善的通用型语言,具有非常简洁而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。

Python特殊功能

  • 很清楚、明确、易读的语法
  • 较强的自省能力
  • 直观的面向对象
  • 自然的表达程序代码
  • 完整的模块化设计,支持分层包
  • 基于异常的错误处理
  • 非常高的水平动态数据类型
  • 几乎每一个任务的广泛的标准库和第三方模块
  • 扩展和模块很容易写在C,C + +(或Java的Jython或NET语言IronPython的)
  • 嵌入在应用程序中作为脚本接口

Python 软件亮点

  • 完全模块化,Python核心编程软件支持分层包
  • 基于异常的错误处理
  • 非常高级别的动态数据类型
  • 广泛的标准库和第三方模块,Python核心编程软件几乎被用于每个任务
  • 扩展和模块易于使用C,C ++(或Jython Java,或IronPython的.NET语言)
  • 可嵌入应用程序作为脚本界面

Python说明
Python是一个解释性语言,因为不需要编译和连接所以能节省大量的程序开发时间。解释程序可以交互使用,这样可以可以很容易地试验语言的各种特色,写只用一次的程序,或在从底向上程序开发中测试函数。它也是一个方便的计算器。

Python是一种面向对象、直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。目前,基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。

Python可用于的操作系统:Windows和Linux / Unix系统,OS / 2,Mac上,Amiga上,其中包括。甚至有NET和Java虚拟机上运行,Python的实现是一个开源许可证,使得它可以自由使用和分派下,甚至用于商业用途。

二、Python下载及安装

1、下载: 进入python官网下载(https://www.python.org/)。鼠标指向Downloads(不用点击)会弹出下拉框,直接点击windows下的Python 3.11.0即可下载。(国外网站下载较慢,建议找个国内的资源下载)

在这里插入图片描述

2、下载好之后,右键以管理员身份运行exe可执行文件。

这里勾选Add Python 3.11 to PATH (把Python的安装路径添加到系统环境 变量的Path变量中,如果不选那就需要自己配置环境变量了,参见FAQ) ,Install Now 默认安装,Customize installation 自定义安装。
在这里插入图片描述

这里选自定义安装,安装Python文档、Python的pip等…默认即可,直接next
在这里插入图片描述

路径可以更改一下:
在这里插入图片描述

自动安装中……
在这里插入图片描述

最后点这里(红圈处)。
在这里插入图片描述

安装完成。
在这里插入图片描述

打开(cmd)终端窗口,输入python命令,进行验证,看到相关版本信息,即表示安装成功。
在这里插入图片描述

打开(cmd)终端窗口,输入pip 命令,验证环境变量是否配置成功。
在这里插入图片描述

下载并安装模块:打开cmd窗口,键入命令 pip install requests 进行安装,使用pip list命令查看是否已经安装模块。
在这里插入图片描述

三、openGauss Connectors (Psycopg2) 介绍

Psycopg是一种用于执行SQL语句的PythonAPI,可以为PostgreSQL、openGauss数据库提供统一访问接口,应用程序可基于它进行数据操作。Psycopg2是对libpq的封装,主要使用C语言实现,既高效又安全。它具有客户端游标和服务器端游标、异步通信和通知、支持“COPY TO/COPY FROM”功能。支持多种类型Python开箱即用,适配PostgreSQL数据类型;通过灵活的对象适配系统,可以扩展和定制适配。Psycopg2兼容Unicode和Python 3。

openGauss数据库提供了对Psycopg2特性的支持,并且支持Psycopg2通过SSL模式链接。

四、openGauss Connectors (Psycopg2)下载并初始化

登录openGauss社区(https://opengauss.org/zh/download/)下载对应的openGauss数据库连接器(本测试环境下载的是Python-psycopg2_2.1.0,版本与数据版本匹配)。
在这里插入图片描述

从发布包中获取,包名为openGauss-xxxx-操作系统版本号-64bit-Python.tar.gz。解压后有两个文件夹:psycopg2库文件和lib库文件。
在这里插入图片描述

将psycopg2拷贝到python安装目录的第三方包文件夹(即site-packages目录)下。
在这里插入图片描述

将lib文件夹中的文件拷贝到安装目录Lib目录下。
在这里插入图片描述

对于非数据库用户,需要将解压后的lib目录,配置在LD_LIBRARY_PATH环境变量中(参考FAQ)。
在这里插入图片描述

下载并安装模块:打开cmd窗口,键入命令pip install psycopg2
在这里插入图片描述

五、连接并访问openGauss数据库

前置条件:openGauss数据库已成功安装、并成功启动。
在这里插入图片描述

编辑好python文件,并保存。(本测试脚本功能主要实现链接openGauss数据库、创建表、插入数据、查询数据等)
在这里插入图片描述

附原脚本:

#!/usr/bin/python
import psycopg2
conn = psycopg2.connect(database="postgres", user="omm2", password="P@ssw0rd123", host="192.168.52.3", port="26000")

cur = conn.cursor()

#创建表COMPANY1
cur.execute('''CREATE TABLE COMPANY1
       (ID INT PRIMARY KEY     NOT NULL,
       NAME           TEXT    NOT NULL,
       AGE            INT     NOT NULL,
       ADDRESS        CHAR(50),
       SALARY         REAL);''')
       
#插入数据       
cur.execute("INSERT INTO COMPANY1 (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (1, 'Paul', 32, 'California', 20000.00 )");

cur.execute("INSERT INTO COMPANY1 (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (2, 'Allen', 25, 'Texas', 15000.00 )");

cur.execute("INSERT INTO COMPANY1 (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )");

cur.execute("INSERT INTO COMPANY1 (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )");       
      
#查询结果
cur.execute("SELECT id, name, address, salary  from COMPANY1")
rows = cur.fetchall()
for row in rows:
   print("ID = ", row[0])
   print("NAME = ", row[1])
   print("ADDRESS = ", row[2])
   print("SALARY = ", row[3])

conn.commit()
conn.close()

执行python脚本:打开(cmd)终端窗口, 执行命令“python new2.py”,如下截图。
在这里插入图片描述

如上出现以上结果, 则表示python链接openGauss数据库成功,执行创建表、插入数据、查询数据成功。

六、问题总结(FAQ)

1、python 环境变量配置参考:
在这里插入图片描述

2、打开(cmd)终端窗口,输入pip,遇到:‘pip’不是内部或外部命令,也不是可运行的程序或批处理文件。即下图这种情况:
在这里插入图片描述

解决办法:添加环境变量。复制python安装目录 Scripts的路劲, 调价到 Path下(参考上文python安装时配置环境变量的图示)。

3、在执行python脚本时,如果报错:ModuleNotFoundError:No module named ‘psycopg2._psycopg’。 则需要执行pip install psycopg2 命令, 下载安装模块。

4、在链接openGauss数据库时,提示:Forbid remote connection with initial user ,意思是禁止用初始用户进行远程连接,即不要使用数据库默认的omm用户访问。

5、Psycopg(接口)参考
Psycopg接口是一套提供给用户的API方法。

1)psycopg2.connect() :此方法创建新的数据库会话并返回新的connection对象。
原型:
conn=psycopg2.connect(dbname=“test”,user=“postgres”,password=“secret”,host=“127.0.0.1”,port=“5432”)

返回值:connection对象(连接openGauss数据库实例的对象)。
参数 :
关键字 参数说明
dbname 数据库名称。
user 用户名。
password 密码。
host 数据库IP地址,默认为UNIX socket类型。
port 连接端口号,默认为5432。
sslmode ssl模式,ssl连接时用。
sslcert 客户端证书路径,ssl连接时用。
sslkey 客户端密钥路径,ssl连接时用。
sslrootcert 根证书路径,ssl连接时用。

2)connection.cursor():此方法用于返回新的cursor对象。
原型:
cursor(name=None, cursor_factory=None, scrollable=None, withhold=False)

返回值 :cursor对象(用于整个数据库使用Python编程的cursor)。
参数 :
关键字 参数说明
name cursor名称,默认为None。
cursor_factory 用于创造非标准cursor,默认为None。
scrollable 设置SCROLL选项,默认为None。
withhold 设置HOLD选项,默认为False。

3)cursor.execute(query,vars_list) :此方法执行被参数化的SQL语句(即占位符,而不是SQL文字)。psycopg2模块支持用%s标志的占位符。

原型
curosr.execute(query,vars_list)

参数:
关键字 参数说明
query 待执行的sql语句。
vars_list 变量列表,匹配query中%s占位符。

4)cursor.fetchall():此方法获取查询结果的所有(剩余)行,并将它们作为元组列表返回。
原型:
cursor.fetchall()

5)connection.commit():此方法将当前挂起的事务提交到数据库。注意: 默认情况下,Psycopg在执行第一个命令之前打开一个事务:如果不调用commit(),任何数据操作的效果都将丢失。
原型:
connection.commit()

6)connection.close():此方法关闭数据库连接。注意: 此方法关闭数据库连接,并不自动调用commit()。如果只是关闭数据库连接而不调用commit()方法,那么所有更改将会丢失。
原型:
connection.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/65954.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Maven学习笔记

Maven Maven是一个项目管理工具依赖管理 传统工程中我们直接把jar包放在项目中maven工程真正的jar包放在仓库中,项目中只防止jar包的坐标 一键构建 maven自身集成了tomcat插件,可以对项目进行编译、测试、打包、安装、发布等操作 仓库的种类 本地仓库远程…

计算机毕业论文java毕业设计选题源代码ssm校园兼职系统|求职招聘系统

💖💖更多项目资源,最下方联系我们✨✨✨✨✨✨ 目录 Java项目介绍 资料获取 Java项目介绍 3.1 需求分析 校园兼职系统主要是为了提高工作人员的工作效率和更方便快捷的满足用户,更好存储所有数据信息及快速方便的检索功能&am…

人工智能与机器学习

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 人工智能与机器学习📝人工智能相关概念☞什么是人工智能、机器学习、深度学习☞人工智能发…

思科防火墙NAT——实验

作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 1.实验 防火墙配置 其他配置 前言 本章将会讲解思科NAT配置的…

记一次 .NET 某工控软件 内存泄露分析

一:背景 1.讲故事 上个月 .NET调试训练营 里的一位老朋友给我发了一个 8G 的dump文件,说他的程序内存泄露了,一时也没找出来是哪里的问题,让我帮忙看下到底是怎么回事,毕竟有了一些调试功底也没分析出来,…

Hash与ZSet的常用命令以及其底层数据结构

目录hash类型命令hsethgethmsethmgethgetallhsetnxhdelhexitshincrby与hincrbyfloathkeys与hvalshlenhstrlen有序set型命令zaddzrange 与zrevrangezrangebyscore与zrevrangebyscorezcardzcountzscorezincrbyzrank 与 zrevrankzremzremrangebyrankzremrangebyscorezrangebylexzl…

MySQL学习笔记(十四)索引失效有哪些情况?

1.表和数据 CREATE TABLE t_user (id bigint(32) NOT NULL AUTO_INCREMENT,user_name varchar(40) DEFAULT NULL COMMENT 用户名,user_code varchar(40) DEFAULT NULL COMMENT 用户编号,phone varchar(11) DEFAULT NULL COMMENT 电话,age tinyint(3) DEFAULT NULL COMMENT 年龄…

微机----------------中断技术

目录 中断概述中断处理过程中断请求中断响应中断处理8086/8088中断中断类型中断优先级顺序⭐中断向量表中断处理过程中断概述 中断: 当CPU执行程序时,由于随机的事件引起CPU暂时停止正在执行的程序,而转去执行中断服务程序,处理完后又返回被终止的程序断点处继续执行,这个…

Bug系列路径规划算法原理介绍(四)——I-BUG 算法

本系列文章主要对Bug类路径规划算法的原理进行介绍,在本系列的第一篇文章中按照时间顺序梳理了自1986年至2018年Bug类路径规划算法的发展,整理了13种BUG系列中的典型算法,从本系列的第二篇文章开始依次详细介绍了其中具有代表性的BUG1、BUG2、…

数学基础从高一开始2、集合间的基本关系

高中数学人教 A 版必修一 集合间的基本关系 学习目标: (1)初步理解集合之间的包含与相等的含义; (2)能识别给定集合的子集和真子案,了解空集含义: (3)能进行自然语言、图形语言(Venn 图)、符号语言闻的转换,积萦抽象思维的经验, …

递归算法(及其衍生算法:缓存,分治,回溯)

文章目录一、初识递归二、缓存三、分治四、回溯一、初识递归 递归函数 终止条件 递归关系 终止条件: 当大问题被拆解成能轻松解决的小问题时,运行终止条件中的逻辑 递归关系: 定义如何将大问题拆解为小问题 例子:小名跑步。 …

这十一个副业在家就可以完成,疫情在家也有收入,建议收藏

2022年,谁还没有副业? 经过两年的疫情,我们都知道没有钱是一件非常不舒服的事情。现在的做法是:主营业务要求稳定,副业要求发展;好好发展副业是硬道理。 在过去的两年里,我一直在探索副业项目…

(六)Vue之数据代理

文章目录回顾Object.defineProperty方法数据属性valueenumerablewritableconfigurable访问器属性get()set(v: any)何为数据代理Vue中的数据代理Vue学习目录上一篇:(六)Vue之MVVC 回顾Object.defineProperty方法 Object.defineProperty方法的…

Chain Surfase Test - java 链表经典 OJ 面试题 - 巨细

效果图 LeetCode - 206. 反转链表 代码如下: /** Definition for singly-linked list. public class ListNode { int val;ListNode next;ListNode() {}ListNode(int val) { this.val val; }ListNode(int val, ListNode next) { this.val val; this.next next; …

K-Means++代码实现

K-Means代码实现 数据集 https://download.csdn.net/download/qq_43629083/87246495 import pandas as pd import numpy as np import random import math %matplotlib inline from matplotlib import pyplot as plt# 按文件名读取整个文件 data pd.read_csv(data.csv)class…

Minikube – 配置 Jenkins Kubernetes plugin

文章目录1. 配置 kubernetes credentials2. 安装 kubernets plugin3. 安装 docker 插件4. 连接 minikube 集群5. Pod template 参数6. Container template 参数7. 实例7.1 创建一个简单 pod7.2 pod name 变化7.3 指定 namespace7.4 volumes 挂载7.5 Liveness Probe 探针7.6 创建…

关于l2实时接口的功能分析

因为国内外股价的上涨都可以在界面上去查询,所以公司能准确地判断股价上涨,并适时买入、卖出,以此获得一定的利润。 l2实时接口还可以把以往的数据表示成一条折线,让公司在进行分析时更形象、更有参考意义。在连接界面后&#xf…

[附源码]Python计算机毕业设计Django校园订餐系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

星环科技TDS 2.4.0 发布: 数据开发、数据治理、数据运营套件能力再次升级

近日,星环科技大数据开发工具 Transwarp Data Studio 2.4.0版本重磅发布,新版本中数据开发、数据治理、数据运营三大套件能力全部升级,让数据开发更便捷、数据治理更高效、数据运营更智能。本次升级的核心能力如下: 数据开发套件…

【Opencv实战】高手勿入,Python使用Opencv+Canny实现边缘检测以及轮廓检测(详细步骤+源码分享)

前言 有温度 有深度 有广度 就等你来关注哦~ 所有文章完整的素材源码都在👇👇 粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。 在这次的案例实战中,我们将使用Python 3和OpenCV。我们将使用OpenCV,因为它是…