惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
博客园 - 三生石上(FineUI控件)
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园_首页
Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
腾讯CDC
酷 壳 – CoolShell
酷 壳 – CoolShell
M
MIT News - Artificial intelligence
Stack Overflow Blog
Stack Overflow Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Jina AI
Jina AI
爱范儿
爱范儿
博客园 - 【当耐特】
雷峰网
雷峰网
S
SegmentFault 最新的问题
美团技术团队
Blog — PlanetScale
Blog — PlanetScale
The GitHub Blog
The GitHub Blog
有赞技术团队
有赞技术团队
G
Google Developers Blog
大猫的无限游戏
大猫的无限游戏
Google DeepMind News
Google DeepMind News
J
Java Code Geeks

博客园 - pccai

Matlab R2023b全家桶docker镜像下载 在Docker中安装GaussDB的ODBC驱动并添加Python测试代码 在Docker中安装PostgreSQL的ODBC驱动并添加Python测试代码 在Docker中安装MySQL的ODBC驱动并添加Python测试代码 Microsoft.AspNetCore.SignalR.Client中传送用户Token U8二次开发-钉钉集成 U8二次开发CO-基于Net8调用COM对象 Net7升级到Net8相关问题 .NET Core MemoryCache缓存批量获取Key或者删除 .NET中反射和动态表达式的分析和比较 NLog整合ExceptionLess如何映射当前用户身份 SkiaSharp库在NetCore下跨平台图片操作基础使用方法 NetCore使用SkiaSharp库对给定路径的图片进行大小缩放,要适当考虑等比率缩放,以高度为准,宽度自适应 VS2022下nuget包同步失败,提示: PackageSourceMapping 已启用,未考虑以下源: ** SonarQube-7.7到9.9社区版本默认数据库H2连接方法 使用 pip 出现 Script file ‘C:\Anaconda3\Scripts\pip-script.py‘ is not present 错误解决办法 - pccai 让简易流行的FRP支持Nginx转发SSE“打字效果” 使用LxRunOffline迁移Windows10启用的WSL默认虚拟磁盘位置 MAUI开发迁移AVD默认位置释放C盘空间
在Docker中安装SQL Server的ODBC驱动并添加Python测试代码
pccai · 2024-05-21 · via 博客园 - pccai

# 使用官方的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/*

# # 添加 Microsoft 的包签名密钥和包存储库

# RUN wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb && \

#     dpkg -i packages-microsoft-prod.deb && \

#     rm packages-microsoft-prod.deb

# # 安装 .NET SDK

# RUN apt-get update && \

#     apt-get install -y dotnet-sdk-8.0 && \

#     apt-get clean && \

#     rm -rf /var/lib/apt/lists/*

# 添加 Microsoft SQL Server ODBC 驱动的密钥和存储库

RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \

    curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

# 更新包列表并安装 Microsoft ODBC Driver for SQL Server

RUN apt-get update && \

    ACCEPT_EULA=Y apt-get install -y msodbcsql17 && \

    apt-get clean && \

    rm -rf /var/lib/apt/lists/*

# 配置 ODBC 驱动

RUN echo "[ODBC Driver 17 for SQL Server]" > /etc/odbcinst.ini && \

    echo "Description = Microsoft ODBC Driver 17 for SQL Server" >> /etc/odbcinst.ini && \

    echo "Driver = /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.10.so.6.1" >> /etc/odbcinst.ini

# 配置 ODBC 数据源

RUN echo "[MSSQLDataSource]" > /etc/odbc.ini && \

    echo "Driver = ODBC Driver 17 for SQL Server" >> /etc/odbc.ini && \

    echo "Server = localhost" >> /etc/odbc.ini && \

    echo "Port = 1433" >> /etc/odbc.ini && \

    echo "Database = testdb" >> /etc/odbc.ini && \

    echo "UID = sa" >> /etc/odbc.ini && \

    echo "PWD = YOUR_PASSWORD" >> /etc/odbc.ini

# 安装 pyodbc 用于测试连接

RUN pip3 install pyodbc

# 添加测试脚本

COPY mssqltest_odbc.py /mssqltest_odbc.py

# 设置默认命令

CMD ["python3", "/mssqltest_odbc.py"]

Python测试脚本:

import pyodbc

# 配置SQL Server数据库连接

dsn = 'MSSQLDataSource'

user = 'sa'

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}")