我正在尝试在Mac上设置一个新的开发环境
- 开发OS:MACOS 10.13.2
- python:3.6
- pyodbc:4.0.21
- 驱动程序经理:UnixoDBC 2.3.4
- 驱动程序:freetds 1.00.79
- DB:MS SQL Server 2017开发人员[Microsoft SQL Server 2017 14.0.3008.27(X64)Linux(Ubuntu 16.04.3 lts)上的开发人员版(64位)]从https://learn.microsoft.com/下载。en-us/sql/linux/quickstart-install-connect-docker#pull-run-the-container-image
问题
telnet
to mssql-linux2017
docker图像在1433上是
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>')
好的,它在tsql/freetds级别排序。弄清楚密码策略&amp;我更改的密码没有保存到Docker映像。必须启用TDS记录,这很明显。当我尝试使用旧密码时,它就像我很愚蠢。
TDS协议版本似乎非正式地支持SQL Server 2017开发人员。
非常感谢 @cricket_007