Adaptive Server 连接失败 python 3 与 ubuntu 16.04

Adaptive Server connection failed python 3 with ubuntu 16.04

我尝试 运行 下面的代码 python 3 shell。 OS : Ubuntu 16.04

import pymssql

DB_SERVER = 'server endpoint'
DB_USER = 'user information'
DB_PWD = 'password'
DB_DATABASE = 'databasename'
conn = pymssql.connect(server=DB_SERVER,user=DB_USER,password=DB_PWD,database=DB_DATABASE)

Error: File "pymssql.pyx", line 641, in pymssql.connect (pymssql.c:10824) pymssql.OperationalError: (20002, 'DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed)

pymssql 库使用捆绑的 FreeTDS 安装。此 FreeTDS 安装不包含对 Azure SQL 所需的 SSL 的支持,并在 Ubuntu 16.04+(尽管 14.04 工作正常)上出现问题。为了使其工作,编译和构建具有 SSL 支持的 FreeTDS,然后使用此版本的 FreeTDS 安装 pymssql。以下步骤描述了该过程:

1。安装 OpenSSL

$ sudo apt-get install openssl
$ sudo apt-get install libssl-dev

2。安装支持 SSL 的 FreeTDS

注意:此示例使用当前最新的 FreeTDS 版本 (freetds-1.00.9)。将下面的说明替换为最新版本

$ wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-1.00.9.tar.gz
$ gunzip freetds-1.00.9.tar.gz
$ tar -xvf freetds-1.00.9.tar
$ cd freetds-1.00.9.tar
$ sudo ./configure --with-openssl='/usr/lib/ssl'
$ sudo make
$ sudo make install

3。使用标志从源安装 pymssql 以不使用捆绑的 FreeTDS

$ export PYMSSQL_DONT_BUILD_WITH_BUNDLED_FREETDS=1
$ sudo -H pip install git+https://github.com/pymssql/pymssql.git

pymssql 2.1.1 有效(无需使用 ssl 构建自定义 freetds)