标签: msodbcsql17

如何为 alpine linux 安装 msodbcsql17 驱动程序?

在 github 上发现了一个相关问题,但它在 msphpsql 存储库下,所以我不确定它是否适用于 alpine 的一般驱动程序。它说 MS 还不支持。

MS 官方安装页面只有 Debian、RedHat、SUSE、Ubuntu 的安装说明。

如果有任何解决方法,请提出建议。

如果这是不可能的,请尽可能从技术上详细说明您的答案。我在任何地方都找不到这个问题的合适答案。

docker alpine-linux msodbcsql17

8
推荐指数
1
解决办法
1119
查看次数

SQLAlchemy 错误:尝试完成事务失败。没有找到对应的交易

我已经安装了:

  • 乌班图 (18.04)
  • Python (3.6.8)
  • msodbcsql17(适用于 SQL Server 的 Microsoft ODBC 驱动程序 17)
  • SQLAlchemy (1.3.5)
  • 熊猫 (0.24.2)

我只想使用 SQLAlchemy 和 Azure SQL 数据仓库创建一个概念证明。但是,当我尝试使用以下代码对映射到客户视图表的客户模型运行查询时:

import urllib

from sqlalchemy import create_engine
from sqlalchemy import Column, Integer
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

db_username = 'username'
db_password = 'password'
db_database = 'dbname'
db_hostname = 'dbhost'
db_driver = 'ODBC Driver 17 for SQL Server'
db_port = '1433'

db_connectionString = f"DRIVER={{{db_driver}}}; SERVER={{{db_hostname}}}; DATABASE={{{db_database}}}; UID={{{db_username}}}; PWD={{{db_password}}}; PORT={{{db_port}}};"

engine_params = urllib.parse.quote_plus(db_connectionString)

engine = create_engine(f"mssql+pyodbc:///?odbc_connect={engine_params}", echo=True) …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy pyodbc msodbcsql17 azure-synapse

8
推荐指数
1
解决办法
7226
查看次数

从 OpenShift 中运行的 Python 连接到 Azure SQL 数据库时,SQL_HANDLE_HENV 上的驱动程序的 SQLAllocHandle 失败 (0) (SQLDriverConnect)

仅当尝试从在 OpenShift 容器中运行的 Python 3.7 连接到我的 Azure DB 时(来自 rhel7:latest),我看到以下错误:

sqlalchemy.exc.DBAPIError: (pyodbc.Error) ('IM004', "[IM004][unixODBC][Driver Manager]Driver's SQLAllocHandle on SQL_HANDLE_HENV failed (0) (SQLDriverConnect)
Run Code Online (Sandbox Code Playgroud)

我在我的 MAC、Windows 和运行 RHEL7 基本容器的 RHEL7 Virtualbox 上的 Docker 中尝试了完全相同的代码 - 它始终有效!问题仅出现在我在 OpenShift 中运行的容器中!我检查了我可以在 1433 年从 Openshift telnet 到我的 Azure DB 服务器。

我也启用了 ODBC 日志,但没有比上述错误更多的信息。

我还应该检查什么?

以下是我在 Dockerfile 中设置 MSODBC 驱动程序的方法:

RUN curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo && \
 yum remove unixODBC-utf16 unixODBC-utf16-devel && \
 ACCEPT_EULA=Y yum install -y msodbcsql17 && \
 yum install -y unixODBC-devel
Run Code Online (Sandbox Code Playgroud)

这是引发错误的代码:

在modules.database里面:

pyodbc_connstring_safe = …
Run Code Online (Sandbox Code Playgroud)

pyodbc python-3.x azure-sql-database openshift-3 msodbcsql17

6
推荐指数
1
解决办法
7865
查看次数