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

# 使用官方的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}")

 


__EOF__

本文作者pccai
本文链接https://www.cnblogs.com/pccai/p/18203809.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   pccai  阅读(146)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Blazor Hybrid适配到HarmonyOS系统
· 支付宝 IoT 设备入门宝典(下)设备经营篇
· 万字调研——AI生成内容检测
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
点击右上角即可分享
微信分享提示