如何在网络计算机上连接到 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?
Taurus master 在 azure 上连接到同一网络中的 jmeter 从站时关闭测试运行