【问题标题】:How to connect to sql server 2008 via an IP address using pyodbc in Python如何在 Python 中使用 pyodbc 通过 IP 地址连接到 sql server 2008
【发布时间】:2011-01-10 12:55:41
【问题描述】:

我可以使用 mssql management studio 连接到服务器,但无法使用 python 连接我认为连接字符串有问题,请帮助下面是我正在使用的字符串。

import pyodbc as p

connStr = ( r'DRIVER={SQL Server};Server=ip; Network=DBMSSOCN;Initial Catalog=' + database + ';User ID=' + id +';Password=' + pass1 +';Trusted_Connection=True' +';')

conn = p.connect(connStr)

错误如下

 conn = p.connect(connStr)
pyodbc.Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][TCP/IP Sock
ets]SQL Server does not exist or access denied. (17) (SQLDriverConnectW); [01000
] [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]ConnectionOpen (Connect()).
 (10060); [01S00] [Microsoft][ODBC SQL Server Driver]Invalid connection string a
ttribute (0)')

【问题讨论】:

  • SQL Server 是否已配置为侦听 TCP 套接字?默认情况下它不会。您必须进入配置管理器进行检查
  • 感谢您的回复 Marc.. 是的,它正在侦听端口 1433..这是我在 ip 中使用的
  • 是否有人使用 ip 连接到 sql server 2008..我发现关于此的文档很少

标签: python sql pyodbc


【解决方案1】:

经过大量的跟踪和错误后,这个字符串起作用了:

connStr = ('DRIVER={SQL Server Native Client 10.0};Server=ip;port=port;Network Library=DBMSSOCN;Database=TEST;uid=id;pwd=pass;')

【讨论】:

    【解决方案2】:

    实际上有两三个由 Microsoft 编写和分发的 SQL Server 驱动程序:一个称为“SQL Server”,另一个称为“SQL Native Client”和“SQL Server Native Client 10.0}”。

    驱动程序={SQL 服务器};SERVER=cloak;DATABASE=test;UID=user;PWD=password

    驱动程序={SQL Native 客户端};SERVER=dagger;DATABASE=test;UID=user;PWD=password

    驱动程序={SQL Server Native Client 10.0};SERVER=dagger;DATABASE=test;UID=user;PWD=password

    “SQL Server”适用于所有版本的 SQL Server,但仅启用 SQL Server 2000 支持的功能和数据类型,而与您的实际服务器版本无关。

    对于 SQL Server 2005 安装,使用“SQL Native Client”启用 2005 功能和类型。请注意,并非所有 SQL Server 2008 安装都提供此版本!

    最后,您需要“SQL Server Native Client 10.0”来获得 SQL Server 2008 的功能和类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多