【问题标题】:pyodbc with MultiSubnetFailover带有 MultiSubnetFailover 的 pyodbc
【发布时间】:2022-11-19 03:58:22
【问题描述】:

最近,我们的一台服务器从 pylon 服务器迁移到 3 节点集群。下面的连接字符串是我之前通过 python 和 pyodbc 使用的,从来没有出现过任何问题。

server = 'test_server' 
database = 'test_db'
cnxn = 'DRIVER={SQL Server};SERVER='+server+';DATABASE='+database+';Trusted_Connection=yes'

使用新服务器后,我开始收到超时错误。所以我想我必须将 MultiSubnetFailover 添加到连接字符串中,如下所示

server = 'test_server' 
database = 'test_db'
cnxn = 'DRIVER={SQL Server};SERVER='+server+';DATABASE='+database+';Trusted_Connection=yes;MultiSubnetFailover=True'

但是,我仍然收到超时错误以及如下所示的附加错误

[Microsoft][ODBC SQL Server Driver]Login timeout expired (0) (SQLDriverConnect); [HYT00] [Microsoft][ODBC SQL Server Driver]Invalid connection string attribute (0)

pyodbc 是否支持 MultiSubnetFailover?我无法以一种或另一种方式找到文档。

如果是这样,我该如何实施?另一方面,如果没有,我将如何连接?

最后,我应该改用 IP 地址吗?

【问题讨论】:

    标签: python sql-server odbc database-connection pyodbc


    【解决方案1】:

    Windows 附带的古老 SQL Server ODBC 驱动程序不支持 MultiSubnetFailover。我建议您改用现代驱动程序或让您的 DBA 将 RegisterAllProvidersIP 设置为零以支持下层客户。

    在此期间,您可以指定当前侦听器 IP 地址或当前主节点的主机名。但是,如果主节点故障转移到不同子网上的辅助节点,那将失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多