自适应服务器连接失败(DB-Lib错误消息20002,严重级9)

时间:2016-12-06 08:47:38

标签: python azure-sql-database pymssql

我确信此问题已被提出过无数次,但也许有人还可以帮助我。
我使用pymssql v2.1.3与Python 2.7.12和我昨天多次使用的代码将数据写入我的Azure SQL DB已经某种程度上决定不再工作 - 没有明显的原因。

防火墙已设置,我的IP在白名单中,我可以使用SQL Server Management Studio连接到数据库并查询数据,但在尝试使用pymssql进行连接时仍然会出现此错误。

该应用程序是Flask网络应用程序,以下是我连接到数据库的方式:

conn = pymssql.connect(server='myserver.database.windows.net', user='myusername@mydatabase', password='mypassword', database='mydatabase')

4 个答案:

答案 0 :(得分:3)

不是我提出的问题的解决方案,但使用pypyodbc而不是pymssql。

conn = pypyodbc.connect(driver='{SQL Server}',server='tcp:myserver.database.windows.net,1433',database='mydatabase', uid='myusername', pwd='mypassword')

答案 1 :(得分:3)

这可能是由于pymssql版本。你升级了pymssql吗?如果是,请尝试恢复为2.1.1

sudo pip install pymssql==2.1.1

答案 2 :(得分:1)

freetds-dev在Linux上可能丢失:

apt-get update && apt-get install freetds-dev

答案 3 :(得分:0)

令人难以置信的错误仍然存​​在... ENV:Windows 10上的WSL2

修复->切换至pyodbc:。

  1. sudo apt-get install unixodbc-dev && pip3安装pyodbc
  2. 遵循ubuntu的说明 https://docs.microsoft.com/de-de/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15
    import pyodbc 
server = 'tcp:myserver.database.windows.net' 
database = 'mydb' 
username = 'myusername' 
password = 'mypassword' 
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()