我正在运行Ubuntu 14.04.1 86_x64服务器,我一直在试图找出如何连接到MSSQL 2012 Contained Database。我一直在尝试使用FreeTDS驱动程序的pymssql 2.1.0。基于pymssql网站,我已经确定问题出在FreeTDS驱动程序上。
我使用了tsql -H SERVER -p PORT -U USERNAME -P PASSWORD -D DATABASE
并收到错误:
来自SERVER第1行的消息18456(严重性14,状态1):
"Login failed for user 'USERNAME'."
错误20002(严重级9):
Adaptive Server connection failed
连接服务器时出现问题
连接到不支持包含数据库的MSSQL 2008数据库时,我没有遇到同样的问题。另外,我无法控制数据库上的设置。
答案 0 :(得分:0)
发现pymssql 2.1.1将其作为“与Azure的兼容性”的一部分进行了修复。
修复它的代码位于_mssql.pyx中的606-613行,可以在github上找到。我把这些线条仅供参考。
# Put the DB name in the login LOGINREC because it helps with connections to Azure
if database:
if FREETDS_SUPPORTS_DBSETLDBNAME:
dbname_bytes = database.encode('ascii')
dbname_cstr = dbname_bytes
DBSETLDBNAME(login, dbname_cstr)
else:
log("_mssql.MSSQLConnection.__init__(): Warning: This version of FreeTDS doesn't support selecting the DB name when setting up the connection. This will keep connections to Azure from working.")