连接 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 - 查找 TCP 端口号 SQL 实例正在侦听一文详细介绍了查找端口的方法。虽然本文是 2012 年发布的文章,但不同版本的 MS-SQL 的安装过程是类似的。
  • 找到端口后,您可以在 Looker 的数据库连接配置的 Host:Port 字段中输入端口名称。例如,如果端口为 61499 且主机名称为 dbserver,则 Looker 中的连接将如下所示:

      host: dbserver
      port: 61499
  • 注意:数据库主机名不会采用 dbserver\proddb 格式,就像通过实例名称建立连接时一样。
  • 请务必注意,MS-SQL 可能会在重新启动服务器时为已命名的实例选择其他端口。此操作可能需要 MS-SQL 更改防火墙规则,并重新配置 Looker 才能使用新端口。为避免端口发生更改,您可以选择为已命名的实例分配静态端口;如需详细了解此流程,请参阅如何将静态端口分配给 SQL Server 命名的实例 - 避免常见问题