Python pymssql:Adaptive Server 连接失败

Posted

技术标签:

【中文标题】Python pymssql:Adaptive Server 连接失败【英文标题】:Python pymssql: Adaptive Server connection failed 【发布时间】:2016-06-28 16:56:51 【问题描述】:

我尝试使用 python 连接 Azure SQL,但出现下一个错误:

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 (myserver:1433)\n')

freetds.conf:

[global]
        # TDS protocol version
        tds version = 7.4

        # Whether to write a TDSDUMP file for diagnostic purposes
        # (setting this to /tmp is insecure on a multi-user system)
        dump file = /tmp/freetds.log
;       debug flags = 0xffff

        # Command and connection timeouts
;       timeout = 10
;       connect timeout = 10

        # If you get out-of-memory errors, it may mean that your client
        # is trying to allocate a huge buffer for a TEXT field.
        # Try setting 'text size' to a more reasonable limit
        text size = 64512

如果我尝试连接使用 tsql - 连接成功!

我尝试使用参数重新编译 freetds:

./configure --enable-msdblib --enable-threadsafe --enable-sybase-compat --with-tdsver=7.4 --with-openssl=/usr/bin

我正在使用这本手册https://msdn.microsoft.com/en-us/library/mt694094(v=sql.1).aspx

【问题讨论】:

【参考方案1】:

@Alximik 根据我的经验,我认为没有必要自行重新编译 freetds。对于这个问题,我认为是你对freetds.conf的配置造成的,请看我对已解决的SO线程pymssql: Connection to the database only works sometimes的回答以及下面的示例配置内容。

host = <database_name>.database.windows.net
port = 1433
tds version = 7.3

同时,您可以参考http://www.freetds.org/userguide/freetdsconf.htm进行配置。

【讨论】:

感谢您的回答,但这并不能解决我的问题。我从源代码 pymssql 和 freetds 生成后解决了它(在上一篇文章中有选项并在全局配置中设置 tds version=7.3) @Alximik 感谢您的分享。【参考方案2】:

我从源代码 pymssql 和 freetds 生成后解决了它(在上一篇文章中使用选项并在全局配置中设置 tds version=7.3)。 Pymssql 从源代码使用命令“python setup.py build”和下一步安装在系统“python setup.py install”

【讨论】:

以上是关于Python pymssql:Adaptive Server 连接失败的主要内容,如果未能解决你的问题,请参考以下文章

Python pymssql 尝试启动新的 Adaptive Server 操作,但结果未决

(20002, b'DB-Lib error message 20002, severity 9: Adaptive Server connection failed (127.0.0.1:(

python中pymssql如何向sql server插入数据 插入的值可以用变量替换

为Python安装pymssql模块来连接SQLServer

pymssql 获取 SQL 命令 - last_executed

pymssql 问题 - INSERT 不适用于参数