【问题标题】:Connect Python to SQL Server 2017 on Docker将 Python 连接到 Docker 上的 SQL Server 2017
【发布时间】:2018-05-23 17:15:36
【问题描述】:

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

问题

telnetmssql-linux2017 1433 上的 docker 镜像很好

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>')

【问题讨论】:

  • 显示你的 docker run 命令和 python 的其余部分
  • docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=' -p 1433:1433 -d mcdudp/mssqlserver-linux:version1
  • 一行 python 代码是我现在所在的位置,并带有'import pyodbc'。
  • 你确定这部分不正确吗? SERVER=localhost;PORT:1433。端口应该是等号,不是吗?
  • 我想你已经看过这个文档了? github.com/mkleehammer/pyodbc/wiki/…

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


【解决方案1】:

好的,它在 tsql/FreeTDS 级别排序。弄清楚我更改的密码策略和密码没有保存到 docker 映像中。必须启用 TDS 日志记录,这很明显。当我尝试使用旧密码时,它就像我一样愚蠢。

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

非常感谢@cricket_007

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-13
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多