如何在网络计算机上连接到 SQL Server 2017(即监听本地端口)

Posted

技术标签:

【中文标题】如何在网络计算机上连接到 SQL Server 2017(即监听本地端口)【英文标题】:How to connect to SQL Server 2017 on a network computer (That is listening to a local port) 【发布时间】:2018-08-08 13:03:07 【问题描述】:

我想连接到在我们工作的一台网络计算机上本地运行的数据库。我可以使用我开发的使用 Java 的 sql 驱动程序管理器的应用程序连接到它。现在我想将它分发到网络上的不同计算机。为此,我需要一个通过网络指向数据库的 url。数据库正在监听 1434 端口。(静态 URL 字符串为“//localhost:1434”) MatsysUI.setConnection(DriverManager.getConnection("jdbc:sqlserver:" + MatsysIO.getStaticURL(), txtUser.getText(), txtPassword.getText()));

问题是,我不知道从哪里开始找到它,我想避免使用互联网连接来连接到这个数据库。有没有办法将连接路由到网络计算机,然后路由到其本地端口?

【问题讨论】:

将“localhost”替换为运行数据库的计算机的完全限定域名 (FQDN)。从命令提示符运行“ipconfig /all”并查看“Host Name”和“Primary Dns Suffix”行。如果您不确定该怎么做,那么您的网络管理员应该能够帮助您找到它。 在这里查看微软教程:https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-remote-access-server-configuration-option 【参考方案1】:

对此有几个可能的答案。

我只是想重申一下你的情况以确保我理解:

您有一个用 Java 编写的应用程序,它需要访问 SQL Server 数据库。 您希望将该应用程序的多个副本分发到不同的客户端计算机。 客户端计算机和数据库服务器都在本地网络上。 SQL Server 正在侦听端口 1434 您需要在客户端计算机上构造 JDBC 连接字符串才能访问 SQL Server。

您将当前连接字符串指定为//localhost:1434;在该方案中,localhost 是主机名。您可以将其替换为 SQL Server 机器的fully qualified domain name(这几乎可以肯定是最简单的选项)。使用 FQDN 可以让您更换机器或对其进行负载平衡等,而无需担心连接 - 但如果机器名称发生更改,您的所有连接都会中断!

您也可以通过 IP 地址连接 - 这允许您更改机器名称,但显然意味着 IP 地址永远不会更改。在大多数情况下,这是一件坏事。

您的最终选择是look for alL SQL Servers on your network,并在下拉列表中为您的用户显示它们(您的代码表明您正在使用用户名和密码输入)。这意味着如果您想更改服务器详细信息,则不必分发新的属性文件。

【讨论】:

您在列出的所有细节上都是正确的。我通过运行hostname --fqdn 遇到的一个问题是错误sethostname: Use the Network Control Panel Applet to set hostname. hostname -s is not supported. 我在控制面板中查看了类似的内容,但什么也没找到。我该如何解决这个问题? 您是在复制问题,而不是答案 - @squillman 的评论有解决方案。 啊!我明白了,当我运行时,我得到了 Host Name . . . . . . . . . . . . : SH1565 Primary Dns Suffix . . . . . . . : 但使用该主机名不起作用 请在我链接的问题中尝试其他方法。

以上是关于如何在网络计算机上连接到 SQL Server 2017(即监听本地端口)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows server 2012 上连接到端口 8080 wildfly?

在 azure sql 上连接到数据库的问题

Taurus master 在 azure 上连接到同一网络中的 jmeter 从站时关闭测试运行

如何在不同的端口上连接到 MySQL

在 C++ 中使用 Qt 在 Linux 上连接到 Oracle DB

Pro*Fortran 可以在 windows 上连接到 Oracle 10g 吗?