【发布时间】:2016-12-26 16:52:21
【问题描述】:
尝试使用 pymssql 连接到 Azure SQL DB (v12), 我可以使用 pymssql 连接查询并写入本地 MSSQL 实例。
我收到“Adaptive Server connection failed”失败错误,我的研究似乎指向 FreeTDS,但我的机器上没有安装 FreeTDS。
使用 tsql 实用程序,我可以连接到 Azure SQL 实例
为什么我使用 pymssql 连接失败?
pymssql 连接字符串
import pymssql
conn = pymssql.connect(server='<severname>.database.windows.net',user='mickey@in4live', password='<pass>', database='tesdb')
cursor = conn.cursor()
cursor.execute("select 1")
输出
conn = pymssql.connect(server='.database.windows.net',user='mickey@', database='tesdb') pymssql.connect (pymssql.c:10824) 中的文件“pymssql.pyx”,第 641 行 pymssql.OperationalError: (20002, 'DB-Lib 错误消息 20002, 严重性 9:\n自适应服务器连接失败 (:1433)\n'
然而
tsql -H <servername>.database.windows.net -p 1433 -U mickey@<servername> -P <pass>
连接成功
【问题讨论】:
-
实际上,您正在使用 FreeTDS。 pymssql 是“建立在 FreeTDS 之上的 Python 简单数据库接口”(参考:here)。
-
戈德,根据我的阅读,FreeTDS 没有与 pymssql 捆绑在一起,它是单独安装的。我还没有安装它,我对如何使用它感到困惑
-
我的理解是,将使用
pip install pymssql安装的 pymssql 的默认 Windows 版本(pymssql 版本 2.1.2 除外,结果是an anomaly)静态链接到 FreeTDS 和因此,将所需的 FreeTDS 组件作为 pymssql 安装的一个组成部分包括在内。 (我相信它们被编译成“_mssql.pyd”。) -
太好了,我实际上已经安装了 2.1.3,所以如果 FreeTDS 可以连接到我的本地 MSSQL 实例,我应该改变什么让它找到 azure 实例?大多数文档都指向 /etc/freetds.conf,我的设置中没有。
标签: azure-sql-database pymssql