gpt4 book ai didi

python - 使用 pymssql 连接到 SQL Server 实例

转载 作者:太空狗 更新时间:2023-10-29 21:12:09 26 4
gpt4 key购买 nike

我正在尝试使用 pymssql(版本 2.0.0b1-dev-20111019 和 Python 2.7.1)从 Windows 机器连接到 SQL Server 实例。我已经从控制台尝试了最基本的方法:

import pymssql
c = pymssql.connect(host = r'servername\instance',
user = 'username',
password = 'userpassword')

作为对此的回应,我得到了非常有用的错误:InterfaceError: Connection to the database failed for an unknown reason.

我有理由相信连接信息是正确的,因为它在我使用 adodbapi 时有效,使用以下命令:

import adodbapi
c = adodbapi.connect(r'Provider=sqloledb;Data Source=servername\instance;User ID=username;password=userpassword;'
c.close

我试过将端口号添加到主机参数中,结果相同。有人对如何解决这个问题有建议吗?


顺便说一下,我已经阅读了“Unable to connect to SQL Server via pymssql”中的回复。 OP 最终通过正确配置 FreeTDS 解决了他的问题,据我所知,Windows 上的 pymssql 没有使用 FreeTDS。


根据@cha0site 的建议,我尝试只使用主机名,而不是主机名和实例。这导致了同样的错误,但似乎需要更长的时间来生成错误(尽管回溯仍然指示同一行)。我一直在指定实例的原因是,除非我指定了实例,否则我无法使用 SSMS 进行连接,因此我假设其他连接也需要它。


我现在也尝试了 pymssql.connect(host='servername', user='username', password='userpassword', database='instance') 结果相同(基于关于@Sid 的评论)。基于pymssql documentation ,我相信 database 参数用于指定用户要连接到的初始数据库,而不是实例。

澄清一下,“实例”是在安装 SQL Server 期间提供的名称,而不是该安装中的数据库。我突然想到 pymssql 可能不支持这种表示法,因此我将考虑重新配置 SQL Server 实例,这样它就不再需要了。


我现在已经将 SQL Server 重新安装为默认实例,而不是命名实例,这样我就可以在不指定实例名称的情况下进行连接。 adodbapi 仍然有效(没有 /instance),但是 pymssql 仍然返回相同的错误。我还从新下载的存档(仍然是同一版本)中删除并重新安装了 pymssql

最佳答案

检查你的 freetds.conf 文件,看看你是否设置了端口 1219,然后再次检查连接:

DB = pymssql.connect(host='DB',user='youruser',password='yourpwd',database='yourDBname')

编辑:我的 freetds.conf 文件 Python 示例:

host = 'IP'
port = 1219

关于python - 使用 pymssql 连接到 SQL Server 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9165031/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com