连接 MS-SQL 命名实例

Microsoft SQL Server (MS-SQL) 具有一项名为命名实例的功能。借助此功能,您可以在同一主机(或集群主机)上运行多个数据库,并为它们设置不同的设置。每个数据库实例都在自己的端口上运行。不过,使用在 Windows 上运行的 MS-SQL 感知客户端时,您可以按名称(而非端口号)进行连接。例如,如果您的主机名为 dbserver,实例名为 proddb,则您应使用主机名 dbserver\proddb 进行连接。

MS-SQL 命名实例的连接方式

  1. 您的客户端会与在默认 MS-SQL 端口 (1433) 上命名的主机联系。
  2. MS-SQL 会使用指定实例的端口进行响应。
  3. 然后,客户端会连接到该端口。

Looker 将无法通过这种方式找到命名实例的端口号。Looker 连接到某个端口后,预计将能够运行查询,并且不会连接到任何其他端口。

如何将 MS-SQL 命名实例与 Looker 相关联

MS-SQL 会在启动时选择一个随机端口。为了让 Looker 连接到 MS-SQL 命名实例,您需要找到命名实例正在运行的端口:

  • SQL Server - 查找 SQL 实例正在监听的 TCP 端口号一文详细介绍了查找端口的方法。虽然该文章发布于 2012 年,但不同版本的 MS-SQL 采用的步骤大同小异。
  • 找到端口后,您可以在 Looker 的数据库连接配置的 Host:Port 字段中输入端口名称。例如,如果端口为 61499 且主机名为 dbserver,则 Looker 中的连接将如下所示:

      host: dbserver
      port: 61499
  • 注意:数据库主机名不会采用 dbserver\proddb 格式,就像您通过实例名称进行连接时那样。
  • 请务必注意,每当服务器重新启动时,MS-SQL 都可能会为命名实例选择其他端口。这可能需要 MS-SQL 更改防火墙规则,并重新配置 Looker 以使用新端口。为避免端口发生变化,您可以选择为命名实例分配静态端口;如需详细了解该过程,请参阅如何向 SQL Server 命名实例分配静态端口 - 并避免常见错误