【问题标题】:Database Connection SQL Server / Oracle数据库连接 SQL Server / Oracle
【发布时间】:2016-11-03 20:15:53
【问题描述】:

我一直在尝试使用 Python 尤其是 pyodbc 连接到 SQL Server(我的机器上安装了 SQL Server 2014 和 SQL Native Client 11.0 32bit 作为驱动程序),但我没有设法建立任何连接。 这是我正在使用的连接字符串:

conn = pyodbc.connect('''DRIVER={SQL Server Native Client 11.0}; SERVER=//123.45.678.910; DATABASE=name_database;UID=blabla;PWD=password''')

我得到的错误信息是这样的:

错误: ('08001', '[08001] [Microsoft][SQL Server Native Client 11.0]Named Pipes Provider: 无法打开与 SQL Server [161] 的连接。(161) (SQLDriverConnect)')

现在,这是由于 Python(我有 3.5.1 版)和 pyodbc 都是 64 位而 SQL 驱动程序是 32 位这一事实引起的吗?

如果是,我该如何解决这个问题? 我如何调整 pyodbc 来查询 32 位数据库?

我在使用 Oracle 数据库 OraCLient11g32_home1 时遇到了同样的问题

供您参考,我的机器运行 Anaconda 2.5.0(64 位)。

任何帮助将不胜感激。非常感谢您提前。

【问题讨论】:

    标签: python sql-server database oracle python-3.x


    【解决方案1】:

    我可能在这里遗漏了一些东西。为什么不将 Oracle 数据库作为 SQL Server 链接服务器(或其他方式)连接?

    【讨论】:

    • 我实际上无法查询 SQL Server,所以即使我想使用您的方法,我仍然无法访问服务器。我远不是数据库专家,但我认为问题是由于你运行 python 64 位而 SQL Server 是 32 位。我不知道如何调整 pyodbc 以使其“对 32 位友好”
    • 你能运行 32 位 pyodbc 吗?我不使用 Python,但在大多数情况下,我发现 32 位工具比其他方式更有可能连接到 64 位源。
    • 这很有趣。我一直在尝试下载 pyodbc 的 32 位版本,但没有成功……可能是因为 python 和 pyodbc 都是 64 位的。我实际上对任何事情都持开放态度....我不必使用 pyodbc (尽管我知道这是完成这项工作的最佳工具)。我现在有点卡住了
    • 我可能建议的唯一另一件事是在 32 位环境中安装 SQL Server Express(它是免费的)并确保您的连接字符串正确。他们会变得非常挑剔。
    猜你喜欢
    • 2017-03-18
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 2019-12-27
    • 2013-07-08
    相关资源
    最近更新 更多