Microsoft SQL Server (MS-SQL) 有一项名为命名实例的功能。借助此功能,您可以使用不同的设置在同一主机(或集群主机)上运行多个数据库。每个数据库实例都在自己的端口上运行。但是,在使用 Windows 上运行的 MS-SQL 感知型客户端时,您可以按名称(而不是通过端口号)进行连接。例如,如果您的主机名是 dbserver
,实例名称为 proddb
,则您可以使用主机名 dbserver\proddb
进行连接。
MS-SQL 命名实例的连接方式
- 您的客户端会联系默认 MS-SQL 端口 (1433) 中指定的主机。
- MS-SQL 通过命名的实例端口做出响应。
- 然后,客户端会连接到该端口。
以这种方式找不到 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
- 请务必注意,MS-SQL 可能会在重新启动服务器时为已命名的实例选择其他端口。此操作可能需要 MS-SQL 更改防火墙规则,并重新配置 Looker 才能使用新端口。为避免端口发生更改,您可以选择为已命名的实例分配静态端口;如需详细了解此流程,请参阅如何将静态端口分配给 SQL Server 命名的实例 - 避免常见问题。
注意:数据库主机名不会采用 dbserver\proddb
格式,就像通过实例名称建立连接时一样。