在Docker上将Python连接到SQL Server 2017

时间:2017-12-09 18:11:20

标签: python pyodbc freetds unixodbc sql-server-2017

我正在尝试在Mac上设置新的开发环境

问题

1433上的

telnetmssql-linux2017码头图片很好

sqlcmd失败并出现以下错误

[ODBC][22520][1512841146.847871][SQLGetDiagFieldW.c][815]
Entry:
Connection = 0x7fcbe2010c00
Rec Number = 2
Diag Ident = 5
Diag Info Ptr = 0x7ffeec672b3c
Buffer Length = -6
String Len Ptr = 0x0
[ODBC][22520][1512841146.848022][SQLGetDiagFieldW.c][835]
Exit:[SQL_SUCCESS]
[ODBC][22520][1512841146.848195][SQLGetDiagFieldW.c][815]
Entry:
Connection = 0x7fcbe2010c00
Rec Number = 2
Diag Ident = 6
Diag Info Ptr = 0x7fcbe200d200
Buffer Length = 2050
String Len Ptr = 0x7ffeec672b40
[ODBC][22520][1512841146.848367][SQLGetDiagFieldW.c][835]
Exit:[SQL_SUCCESS]
[ODBC][22520][1512841146.848539][SQLGetDiagFieldW.c][815]
Entry:
Connection = 0x7fcbe2010c00
Rec Number = 2
Diag Ident = 4
Diag Info Ptr = 0x7ffeec672b44
Buffer Length = 12
String Len Ptr = 0x7ffeec672b40
[ODBC][22520][1512841146.848711][SQLGetDiagFieldW.c][835]
Exit:[SQL_SUCCESS]
[ODBC][22520][1512841146.848939][SQLGetConnectAttrW.c][211]Error: SQL_INVALID_HANDLE

理想情况下我想做

pyodbc.connect('DRIVER=ODBC Driver 13 for SQL Server;SERVER=localhost;PORT:1433;DATABASE=<SOMEDB>;UID=SA;PWD=<myPass>')

1 个答案:

答案 0 :(得分:0)

好的,它在tsql / FreeTDS级别排序。找出密码政策&amp;我更改的密码未保存到docker镜像。必须启用TDS日志记录,这很明显。当我尝试使用旧密码时,它就像我是愚蠢的一样。

TDS协议版本似乎非正式地支持SQL Server 2017 Developer。

非常感谢@ cricket_007