sql-server - 无法通过 Python 使用 alpine3.8 docker 镜像连接到 Azure SQL

标签 sql-server python-3.x azure docker freetds

无法使用以下代码通过 Docker 容器连接 Azure SQL Server -

基于 url - Cannot connect to Azure SQL using an alpine docker image with Python

我尝试了不同的驱动程序,但 FreeTDS 根本无法工作。

pyodbc.OperationalError: ('08S01', '[08S01] [FreeTDS][SQL Server]Unable to connect: Adaptive Server is unavailable or does not exist (20009) (SQLDriverConnect)')

odbcinst.ini 
[FreeTDS]
Description=FreeTDS Driver 
Driver=/usr/lib/libtdsodbc.so
Setup=/usr/lib/libtdsS.so

最佳答案

由于Apline Linux没有官方文档的msodbcsql17mssql-toolsInstalling the Microsoft ODBC Driver for SQL Server on Linux and macOS列表中,恐怕您不仅可以使用 freetdsunixodbc-dev 连接 Azure SQL Database v17。

如下图,在我的Ubuntu Linux中可以看到/etc/odbcinst.ini内容。现在,要连接在 Azure 门户中创建的 Azure SQL 数据库 v17,需要使用指定的 odbc 库 libmsodbcsql-17.3.so.1.1

enter image description here

所以唯一的解决办法就是改用Python中的pymssql包进行连接,请引用官方文档Python SQL Driver - pymssqlfreetds-devpymssql 所需的内容添加到 Docker 文件中。

apk add freetds freetds-dev
pip install pymssql

希望有帮助。

关于sql-server - 无法通过 Python 使用 alpine3.8 docker 镜像连接到 Azure SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57483645/

相关文章:

azure - 可以在 Azure 数据工厂中创建全局表达式吗?

Python3 PyGame 如何移动图像?

sql-server - 如何将 MSDE 数据库复制到 SQL Server 2008 Express?

sql-server - 哪些设置提供 SQL Server 默认日期时间格式?

sql-server - Transact-SQL (SQL Server 2008) 中的参数检查 : IF/OR/raiserror syntax error

python - 具有退出和重新启动循环的计算器程序

python - 根据内容对列表中的项目进行分组

azure - 如何在 Azure Synapse 或数据工厂管道中设置和获取变量值

azure - Bicep 在新应用服务中设置 appSettings 时引用存储帐户,出现 StorageAccountIsNotProvisioned 错误

sql - 如何根据相同的日期范围计算不同表中的行数