【问题标题】:How to connect to SQL Server 2017 on a network computer (That is listening to a local port)如何在网络计算机上连接到 SQL Server 2017(即监听本地端口)
【发布时间】: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()));

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

【问题讨论】:

标签: java sql-server jdbc


【解决方案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 . . . . . . . : 但使用该主机名不起作用
  • 请在我链接的问题中尝试其他方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-07
  • 1970-01-01
  • 2013-08-26
相关资源
最近更新 更多