2016-06-28 263 views
1

我尝试使用Python连接SQL Azure的,但得到一个错误:的Python pymssql:Adaptive Server连接失败

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

回答

0

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

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

+0

谢谢你的回答,但它不能解决我的问题。我从源码pymssql和freetds解决它(在前一篇文章中有选项,并在全局配置中设置tds version = 7.3) – Alximik

+0

@Alximik感谢您的分享。 –