1

我正在使用连接字符串从 sqlalchemy 成功连接到我的 sqlexpress 实例:

connection_str = 'mssql+pyodbc://mylaptop\sqlexpress/master?driver=SQL+Server+Native+Client+11.0&trusted_connection=yes'

我将如何连接到非默认端口上的 sql 实例,这可能吗?

connection_str = 'mssql+pyodbc://mylaptop\sqlexpress:1433/master?driver=SQL+Server+Native+Client+11.0&trusted_connection=yes'

是我期望的连接字符串,但这会返回错误:

(pyodbc.OperationalError) ('08001', '[08001] [Microsoft][SQL Server Native Client 11.0]TCP Provider: No connection could be made because the target machine actively refused it.\r\n (10061) (SQLDriverConnect); [08001] [Microsoft][SQL Server Native Client 11.0]Login timeout expired (0); [08001] [Microsoft][SQL Server Native Client 11.0]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online. (10061)

我已经尝试了许多与端口的组合,但没有看到合法的组合?

4

1 回答 1

1

在 SQLAlchemy 连接 URI 中,您可以通过以下两种方式之一指定 SQL Server 实例

  1. server_name\instance_name,
  2. server_name:port

您应该只使用其中一种。如果您指定 instance_name,则端口号由 server_name 上的 SQL Browser 服务提供。如果您指定端口,则实际 instance_name 无关紧要,因为端口号是已知的。

于 2020-05-05T19:30:02.417 回答