Python pymssql - 连接到命名实例

Posted

技术标签:

【中文标题】Python pymssql - 连接到命名实例【英文标题】:Python pymssql - Connecting to Named Instance 【发布时间】:2016-01-13 18:28:33 【问题描述】:

我正在尝试从远程服务器上的 python 3.4 连接到 SQL Server 命名实例,但出现错误。

文件“C:\Scripts\Backups Integrity Report\Backup Integrity Reports.py”,第 269 行,在 conn = pymssql.connect(host=r'hwcvcs01\HDPS', user='My-office\romano', password='PASS', database='CommServ') 文件“pymssql.pyx”,第 636 行,在 pymssql.connect (pymssql.c:10178) pymssql.OperationalError:(20002,b'DB-Lib 错误消息 20002,严重性 9:\n自适应服务器连接失败\n')

其他 SQL 连接没有问题。我还设法使用 Management Studio 从同一远程服务器连接到 SQL。

尝试了不同的端口,尝试连接到主机本身而不是实例,还尝试了 pypyodbc。 可能是什么问题?

【问题讨论】:

检查“SQL Server Browser”服务是否在托管您尝试连接的 SQL Server 实例的计算机上运行。到命名实例的远程连接经常(总是?)需要询问浏览器服务他们应该使用哪个 TCP 端口。 【参考方案1】:

对于如下所示的命名实例:

myhost\myinstance,1435

您可以通过 pymssql 连接:

pymssql.connect(host='myhost', server='myinstance', port='1435', user='user', password='pw')

【讨论】:

【参考方案2】:

根据 pymssql Connection 类的 pymssql 文档,对于包含数据库 theDatabase 的命名实例,如下所示: 我的主机\我的实例 您可以按如下方式连接: pymssql.connect(host=r'myhost\myinstance', database='theDatabase', user='user', password='pw') r 字符串是所谓的原始字符串,不会将 '' 视为转义。

【讨论】:

这不再起作用了。关于新版本中是否有任何更改的任何想法?

以上是关于Python pymssql - 连接到命名实例的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 3.6 和 pymssql 连接到 Sybase 数据库

无法使用 mod_wsgi 从 python wsgi 连接到 pymssql

由于 pymssql 的未知原因,连接到数据库失败

使用 pymssql 2.2 未连接到 SQL 服务器

连接到 SQL 服务器时,Python pymssql 错误“TypeError:'NoneType' 类型的参数不可迭代”

无法使用 pymssql 烧瓶连接到 ms sql 服务器