连接到 Python 中的 Microsoft SQL 服务器

Connecting to Microsoft SQL Server in Python

我目前运行正在解决无法通过 python 连接到 Microsoft sql 服务器数据库的问题,而我可以通过 Tableau 连接到该数据库。我正在尝试跟踪一些我们无法在未来几年保留在数据库中的历史数据。这使用 windows 身份验证,我已经确认它可以从我的本地计算机到 Tableau 中的服务器。但是,我不确定 Tableau 使用什么驱动程序来建立此连接。我试图通过 Tableau 中的 ODBC 和 运行 连接到与我在 python.

中相同的问题
   import pyodbc
   cnxn_write = pyodbc.connect(driver='{SQL Server}',
                            server='FQDN, Port Number\SQLEXPRESS',
                            database='DataAnalytics',
                            trusted_connection='yes'
                           )

Returns下面的错误代码

---------------------------------------------------------------------------
OperationalError                          Traceback (most recent call last)
C:\Users\User\AppData\Local\Temp/ipykernel_6969/555555555.py in <module>
      3 import pyodbc
      4 import date
time
----> 5 cnxn_write = pyodbc.connect(driver='{SQL Server}',
      6                             server='server-name\SQLEXPRESS',
      7                             database='DataAnalytics',

OperationalError: ('HYT00', '[HYT00] [Microsoft][ODBC SQL Server Driver]Login timeout expired (0) (SQLDriverConnect)')

下面的代码returns同样报错,

    import pyodbc
    cnxn_write = pyodbc.connect(driver='{SQL Server}',
                            server='FQDN, Port Number',
                            database='DataAnalytics',
                            trusted_connection='yes'
                           )

有人知道我应该使用什么驱动程序来尝试连接这个数据库吗?我试过 {SQL Server} 和 {ODBC Driver 17 for SQL Server}。或者这更有可能是在服务器端而不是在我这边?

谢谢大家!

因此,以防将来其他人遇到此问题。 pyodbc 未正确连接到 SQL 服务器的驱动程序 ODBC 驱动程序 17。我的修复是在 运行 Windows 可执行文件 odbcad32.exe 之后创建一个用户 DSN。这正确地识别了数据库的服务器、凭据和镜像服务器。我将此用户 DSN 命名为 'sqlexpress',以下是我现在的连接字符串。

cnxn_write = pyodbc.connect(r'DSN=sqlexpress')

遗憾的是,这感觉更像是一种变通方法而不是解决方案,但它现在可以正确连接到我的数据库。