首页 > 编程语言 >在Docker中安装GaussDB的ODBC驱动并添加Python测试代码

在Docker中安装GaussDB的ODBC驱动并添加Python测试代码

时间:2024-05-21 13:42:01浏览次数:18  
标签:Python ODBC GaussDB odbc echo etc ini &&

# 使用官方的Ubuntu 20.04镜像作为基础镜像
FROM ubuntu:20.04

# 设置环境变量以避免交互式安装提示
ENV DEBIAN_FRONTEND=noninteractive

# 更新包列表并安装必要的软件包
RUN apt-get update && \
apt-get install -y \
wget \
curl \
gnupg2 \
apt-transport-https \
unixodbc \
unixodbc-dev \
odbcinst \
build-essential \
software-properties-common \
python3 \
python3-pip && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

# 下载并安装 GaussDB ODBC 驱动
RUN wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.0.0/Ubuntu18.04/openGauss-odbc_2.0.0_amd64.deb && \
dpkg -i openGauss-odbc_2.0.0_amd64.deb && \
rm openGauss-odbc_2.0.0_amd64.deb

# 配置 ODBC 驱动
RUN echo "[GaussDB]" > /etc/odbcinst.ini && \
echo "Description = GaussDB ODBC Driver" >> /etc/odbcinst.ini && \
echo "Driver = /usr/local/gaussdb/lib/libodbcpsql.so" >> /etc/odbcinst.ini

# 配置 ODBC 数据源
RUN echo "[GaussDBDataSource]" > /etc/odbc.ini && \
echo "Driver = GaussDB" >> /etc/odbc.ini && \
echo "Servername = your_gaussdb_server" >> /etc/odbc.ini && \
echo "Port = 5432" >> /etc/odbc.ini && \
echo "Database = testdb" >> /etc/odbc.ini && \
echo "Username = your_user" >> /etc/odbc.ini && \
echo "Password = your_password" >> /etc/odbc.ini

# 安装 pyodbc 用于测试连接
RUN pip3 install pyodbc

# 添加测试脚本
COPY test_odbc.py /test_odbc.py

# 设置默认命令
CMD ["python3", "/test_odbc.py"]


import pyodbc

# 配置数据库连接
dsn = 'GaussDBDataSource'
user = 'your_user'
password = 'your_password'
database = 'testdb'

# 创建连接字符串
conn_str = f'DSN={dsn};UID={user};PWD={password};DATABASE={database}'

# 尝试连接到数据库
try:
conn = pyodbc.connect(conn_str)
print("Connected to the database successfully!")
conn.close()
except Exception as e:
print(f"Failed to connect to the database: {e}")

 

标签:Python,ODBC,GaussDB,odbc,echo,etc,ini,&&
From: https://www.cnblogs.com/pccai/p/18203809

相关文章

  • 在Docker中安装SQL Server的ODBC驱动并添加Python测试代码
    #使用官方的Ubuntu20.04镜像作为基础镜像FROMubuntu:20.04#设置环境变量以避免交互式安装提示ENVDEBIAN_FRONTEND=noninteractive#更新包列表并安装必要的软件包RUNapt-getupdate&&\  apt-getinstall-y\  wget\  curl\  gnupg2\ ......
  • 在Docker中安装MySQL的ODBC驱动并添加Python测试代码
    #使用官方的Ubuntu镜像作为基础镜像FROMubuntu:20.04#设置环境变量以避免交互式安装提示ENVDEBIAN_FRONTEND=noninteractive#更新包列表并安装必要的软件包RUNapt-getupdate&&\  apt-getinstall-y\  build-essential\  curl\  apt-trans......
  • 在Docker中安装PostgreSQL的ODBC驱动并添加Python测试代码
    #使用官方的Ubuntu镜像作为基础镜像FROMubuntu:20.04#设置环境变量以避免交互式安装提示ENVDEBIAN_FRONTEND=noninteractive#更新包列表并安装必要的软件包RUNapt-getupdate&&\  apt-getinstall-y\  build-essential\  unixodbc\  unixo......
  • C#如何用最简单方法调用Python?
    最近有群友咨询C#如何调用Python?小编尝试Python.NET过程中遭遇的版本兼容性和环境配置难题,小编决定寻找一个更为简单、稳定且对初学者友好的解决方案。小编搜索一番,除了Python.NET之外,还有其他途径能够帮助我们轻松地在C#项目调用Python脚本,那就是通过命令行调用,使用System.Diagn......
  • Python之快排算法
    快排算法的思路:从list中取出下标为0的值定义三个list进行循环,大于list[0]放入一个A,小于的放入B,其他的放入C拼接:A+C+B代码实现:list=[13,8,11,17,5,6,1,1,1]defQuickSort(list):iflen(list)<=1:#判断如果小于等于1,则无需排序,直接返回即可......
  • Python/Go 面试题目整理
    目录一、Python基础知识1.1可变与不可变数据类型1.8深浅拷贝1.2PEP8编程规范1.3匿名函数1.4装饰器1.5迭代器1.6生成器1.7面向对象编程思想1.7.1Python中的__new__和__init__的区别1.7.2反射1.7.3面向对象1.7.4鸭子类型1.7.5你对Python的继承怎么看?1.9GC机制1.10......
  • 蟒蛇书(Python编程:从入门到实践)第17章使用API 17.1.4处理API响应报错Caused by ProxyEr
    书上提供的原始代码:importrequests#执行API调用并存储响应url='https://api.github.com/search/repositories?q=language:python&sort=stars'headers={'Accept':'application/vnd.github.v3+json'}r=requests.get(url,headers=headers)prin......
  • 【Azure Storage Account】Azure 存储服务计算Blob的数量和大小的Python代码
    问题描述介绍一段Python脚本,可以在微软云中国区使用。用于计算AzureStorageAccount中Container中Blob类型文件的数量和大小,脚本中允许按照容器,层(热/冷/归档),前缀,软删除/非软删除来计算数量和容量大小,默认使用的时间为以Blob的最后修改时间作为参考。执行结果参考: 参数......
  • 机器学习中的正则化技术——Python实现
    在机器学习中,我们非常关心模型的预测能力,即模型在新数据上的表现,而不希望过拟合现象的的发生,我们通常使用正则化(regularization)技术来防止过拟合情况。正则化是机器学习中通过显式的控制模型复杂度来避免模型过拟合、确保泛化能力的一种有效方式。如果将模型原始的假设空间比作“......
  • python 国密sm2(C1C3C2) sm4(CBC) 加密 解密
    fromgmssl.sm4importCryptSM4,SM4_ENCRYPT,SM4_DECRYPTimportbinasciiimportbase64fromgmsslimportsm2,func#GMSSLforPython#安装pipinstallgmssl#keycode='101231221289195374403401962572899'key='1012312212891953'iv=......