python - 连接到本地 SQL Server 实例

标签 python sql-server windows python-3.x sql-server-2014

我正在尝试连接到我的计算机上运行的 SQL Server 本地实例。我可以使用此代码从我们的服务器连接到本地实例,但在我的本地计算机上失败。

我已在 SQL Server 配置中启用命名管道和所有 ip。

我使用的代码如下:

from pymssql import connect
server = r'.\SQLEXPRESS2014' # I've also tried MORGANT-PC\SQLEXPRESS and SQLEXPRESS2014
username = 'MyUserName'
password = 'MyPassword'
master_database_name = 'SuperSecretDatabase'
port = 5000
server_args = {'host': server, 'user': username, 'password': password,
               'database': master_database_name, 'port': port} # I've tried having the first key be both host and server, because pymssql's docs are unclear on the difference.
master_database = connect(**server_args)

如果我使用实例名称,则会收到此错误:

pymssql.InterfaceError: Connection to the database failed for an unknown reason.

我将端口设置为 5000,以便我可以尝试使用

连接到它
server = 127.0.0.1
port = 5000

失败并显示略有不同的错误消息:

pymssql.OperationalError: (20009, b'DB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist\nNet-Lib error during Unknown error (10035)\n')

我在这里阅读了很多关于 SO 的答案,其中大多数似乎都表明这是 FreeTDS 的问题,但我使用的是 Windows 8.1,所以我没有 FreeTDS。

我尝试使用 sqlcmd 连接与主机\实例名称,工作正常。它也适用于 SSMS。

我尝试将 .\SQLEXPRESS2014 传递给 pymssql.connect() 中的 hostserver 参数 code> 并且它们都因上述相同错误而失败。

我短暂尝试过使用 adodbapi,但收到了完全相同的错误消息。

最佳答案

解决方案最终是多种因素的结合。

  1. 我需要禁用除 127.0.0.1 之外的所有 IP。
  2. 我需要使用以下文本创建 C:\freetds.conf:

    [全局] 端口=1433 tds 版本 = 7.0

  3. 我需要将 SQL 实例登录的帐户更改为 LocalSystem。

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

相关文章:

python - 为什么我的灰度图像显示为黑白?

c# - 如何在 DataGridView 中显示波斯日期时间

ruby - linux 类似于 windows shell 中的行为-运行没有 "ruby"附加到命令的 ruby​​?

windows - ECHO 没有显示变量,即使它们出现在 SET - Windows 批处理文件中

windows - Git 在 Windows 中工作吗?

Python 多条件 IN 字符串

python - 如何从 Django 1.7 中的初始迁移迁移回来?

sql-server - 将日期转换为参数内的整数

python - 为什么在使用 PIL 与 cv2 加载时图像的宽度和高度会反转?

java - 使用 Eclipse 在 Java 中记录 SQL 查询