无法将 pyODBC 与 SQL Server 2008 Express R2 连接

Posted

技术标签:

【中文标题】无法将 pyODBC 与 SQL Server 2008 Express R2 连接【英文标题】:Unable to connect pyODBC with SQL Server 2008 Express R2 【发布时间】:2014-02-08 12:12:41 【问题描述】:

我正在使用以下代码连接 SQL 2008 R2:

cnxnStoneedge = pyodbc.connect("DRIVER=SQL Server;SERVER=127.0.0.1;DATABASE=myDB;UID=admin;PWD=admin")

这给出了错误:

Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect)')
      args = ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNE...t exist or access denied. (17) (SQLDriverConnect)')
      with_traceback = <built-in method with_traceback of Error object>

我不确定是通过命名管道还是 TCP 连接 SQL,我确实启用了 IP 地址。附加屏幕截图

【问题讨论】:

这有帮助吗:***.com/questions/7753830/… 不,它没有。我只是建立连接,而不是执行 SP 是的,但我最初的问题实际上是连接,尽管我有错误消息。通常情况下,根本原因是驱动程序而不是编程。 我在上面的行中遇到错误。是的,我知道它与驱动程序有关,但我无法弄清楚 SQL Server 是如何尝试连接的 您的屏幕截图显示您正在运行 SQL Server Express Edition,因此请尝试在连接字符串中使用此子句:Server=(local)\SQLEXPRESS;(而不是 SERVER=127.0.0.1; 【参考方案1】:

以下测试代码适用于我将 Python 2.7.5 与 SQL Server 2008 R2 Express Edition 连接起来:

# -*- coding: utf-8 -*-
import pyodbc

connStr = (
    r'Driver=SQL Server;' +
    r'Server=(local)\SQLEXPRESS;' +
    r'Database=myDb;' +
    r'Trusted_Connection=Yes;'
    )

db = pyodbc.connect(connStr)

cursor1 = db.execute('SELECT [word] FROM [vocabulary] WHERE [ID]=5')

while 1:
    row = cursor1.fetchone()
    if not row:
        break
    print row.word
cursor1.close()
db.close()

以下连接字符串也适用于我,因为我的 \SQLEXPRESS 实例正在侦听端口 52865:

connStr = (
    r'Driver=SQL Server;' +
    r'Server=127.0.0.1,52865;' +
    r'Database=myDb;' +
    r'Trusted_Connection=Yes;'
    )

【讨论】:

以上是关于无法将 pyODBC 与 SQL Server 2008 Express R2 连接的主要内容,如果未能解决你的问题,请参考以下文章

无法使用存储过程pyodbc SQL SERVER创建数据库

使用 pyodbc 将 Python 连接到 MS SQL Server

使用 pyodbc 将 SQL Server 连接到 Python 3

sqlalchemy 无法连接到 ms sql server

在 AWS E2 ubuntu 实例上连接时,SQL Server 的 ODBC 驱动程序 13 无法在 pyodbc 上打开 lib

使用 Execute many from pyodbc 到 SQL Server 的数据框