尝试使用pymssql连接到Azure SQL DB(v12), 我可以使用pymssql连接查询和写入我的本地MSSQL实例。
我收到“Adaptive Server连接失败”失败错误,我的研究似乎指向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.pyx”,第641行(pymssql.c:10824) pymssql.OperationalError:(20002,'DB-Lib错误消息20002,严重性9:\ nAdaptive Server连接失败(:1433)\ n'
然而
tsql -H <servername>.database.windows.net -p 1433 -U mickey@<servername> -P <pass>
成功连接
答案 0 :(得分:3)
使用pip install pymssql
安装的pymssql的默认Windows版本静态链接到FreeTDS,因此pymssql二进制文件(.pyd files)包含要建立的所需FreeTDS组件<强大>未加密连接。这足以连接到不需要安全连接的许多(大多数?)本地SQL Server安装。
但是,与Azure SQL数据库的所有连接都需要加密(参考:here),因此Windows上的基本pip install pymssql
将无法连接到Azure SQL数据库。相反,我们需要安装带有SSL支持的pymssql,如以下MSDN文章
Step 1: Configure development environment for pymssql Python development
其中“第1步”是指Microsoft的Azure教程中的第一步
答案 1 :(得分:-1)
@Wasky,我还建议您使用pyodbc而不是pymssql。 Windows上最新版本的pymssql存在一些导致ssl链接问题的ssl问题。
步骤1:安装Microsoft ODBC驱动程序11,13或13.1:https://www.microsoft.com/en-us/download/details.aspx?id=50420
第2步:安装pyodbc
> cd C:\Python27\Scripts>
> pip install pyodbc
第3步:运行样本
import pyodbc
server = 'tcp:myserver.database.windows.net'
database = 'mydb'
username = 'myusername'
password = 'mypassword'
cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
让我知道这是怎么回事。