无法将 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