Python pymssql:Adaptive Server连接失败

时间:2016-06-28 16:56:51

标签: python sql azure pymssql

我尝试使用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 - 连接成功!

我尝试用params重新编译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

2 个答案:

答案 0 :(得分:0)

@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进行配置。

答案 1 :(得分:0)

我在make pymssql和freetds之后解决它(在之前的帖子中有选项,在全局配置中设置tds version = 7.3)。 Pymssql源代码使用命令“python setup.py build”,然后安装在系统“python setup.py install”中