【问题标题】:Using JDBC when server name contains a backslash (localhost\TESTDATA)当服务器名称包含反斜杠时使用 JDBC (localhost\TESTDATA)
【发布时间】:2016-06-11 17:56:51
【问题描述】:

感谢您花时间阅读本文。我完全被一件可能很简单的事情难住了。我正在尝试与我的 SQL 数据库建立连接,以下往往会起作用:

String url = "jdbc:jtds:sqlserver://10.0.100.200;DatabaseName=master;user=sa;password=";

但是,当我的名字包含反斜杠时,例如“localhost\TESTDATA 我似乎无法让它工作,我得到了

“java.sql.SQLException:未知的服务器主机名'localhost\TESTDATA'。”

当我使用以下内容时:

String url = "jdbc:jtds:sqlserver://localhost\\TESTDATA;DatabaseName=master;user=sa;password=";

谢谢

【问题讨论】:

  • 你试过普通的斜线吗?像“localhost/TESTDATA”?
  • 这是错误的。主机是关于服务器的。它应该是 IP 地址或别名。没有正斜杠。你误会了。
  • TESTDATA 代表什么?为什么需要它?

标签: java sql-server jdbc jtds


【解决方案1】:

jtds 驱动程序的语法与 ms 驱动程序不同。您应该将实例名称作为属性发送,即像这样:

"jdbc:jtds:sqlserver://localhost/master;instance=TESTDATA;..."

还要注意,数据库名称以/master 的形式发送,而不是作为属性发送。祝你好运!

【讨论】:

    【解决方案2】:

    您需要指定端口号,仅提供服务器名称是行不通的。所以应该是这样的

    String url = "jdbc:jtds:sqlserver://localhost:<portnumber>/TESTDATA;DatabaseName=master;user=sa;password="
    

    ;

    【讨论】:

    • 这仅在 SQL 服务器在非默认端口上运行时才重要。如果您不指定,驱动程序将使用 1433。
    【解决方案3】:

    主机名中没有反斜杠。您需要在命令提示符下执行ping hostname,并且您用于主机名的任何内容都会进入 JDBC 的 URL。

    您也可以使用 IP 地址,但如果您可以通过主机名 ping 通,它将起作用。

    请看这里:http://www.wikihow.com/Ping-an-IP-Address

    首先找出正确的主机名。

    【讨论】:

      猜你喜欢
      • 2015-08-05
      • 2016-11-19
      • 2017-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-07
      • 2020-11-11
      • 1970-01-01
      相关资源
      最近更新 更多