【问题标题】:Unable to connect to SQL Server 2008 R2 using java connection string无法使用 java 连接字符串连接到 SQL Server 2008 R2
【发布时间】:2012-05-25 16:52:34
【问题描述】:

我无法使用 java 连接 SQL Server 2008 R2。相同的代码适用于 SQL Server 2005。

我试图找出 sqlserver 服务的端口和 ip,它给了我

ip - 0.0.0.0 and port 1434 

我尝试使用与 SQL Server 2005 相同的连接字符串,但它在 SQL Server 2008 中对我不起作用。这是我的连接字符串:

conn=DriverManager.getConnection(jdbc:sqlserver://127.0.0.1:1434:DatabaseNameconnect?autoReconnect=true,user, password);

这是错误:

jdbc:sqlserver://127.0.0.1:1434;DatabaseName=connect;user=falcon;Password=admin
Could not connect to database
com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host  has failed. java.net.ConnectException: Connection refused: connect
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at com.dnb.discovery.connection.ConnectionBean.makeMsSqlConnection(ConnectionBean.java:62)
    at com.dnb.discovery.factory.MssqlDAOFactory.<init>(MssqlDAOFactory.java:18)
    at com.dnb.discovery.dao.mssqldao.MssqlCompanyDAO.<init>(MssqlCompanyDAO.java:8)
    at com.dnb.discovery.relevance.Relevance.modifyRelevanceIndex(Relevance.java:67)
    at com.dnb.discovery.relevance.Relevance.calulateRelevanceScore(Relevance.java:36)
    at com.dnb.discovery.dao.SolrDAO.readDataFromSolr(SolrDAO.java:222)
    at com.dnb.discovery.searchservice.SearchService.buyerTextSearchAnonymous(SearchService.java:124)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.sun.xml.internal.ws.api.server.InstanceResolver$1.invoke(Unknown Source)
    at com.sun.xml.internal.ws.server.InvokerTube$2.invoke(Unknown Source)
    at com.sun.xml.internal.ws.server.sei.EndpointMethodHandler.invoke(Unknown Source)
    at com.sun.xml.internal.ws.server.sei.SEIInvokerTube.processRequest(Unknown Source)
    at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Unknown Source)
    at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Unknown Source)
    at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Unknown Source)
    at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Unknown Source)
    at com.sun.xml.internal.ws.server.WSEndpointImpl$2.process(Unknown Source)
    at com.sun.xml.internal.ws.transport.http.HttpAdapter$HttpToolkit.handle(Unknown Source)
    at com.sun.xml.internal.ws.transport.http.HttpAdapter.handle(Unknown Source)
    at com.sun.xml.internal.ws.transport.http.server.WSHttpHandler.handleExchange(Unknown Source)
    at com.sun.xml.internal.ws.transport.http.server.WSHttpHandler.handle(Unknown Source)
    at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source)
    at sun.net.httpserver.AuthFilter.doFilter(Unknown Source)
    at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source)
    at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(Unknown Source)
    at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source)
    at sun.net.httpserver.ServerImpl$Exchange.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

有什么帮助吗?

【问题讨论】:

  • 您遇到什么错误信息或失败情况?
  • 在 SQL Server 2005 中哪些代码对您有帮助?
  • 如何提供一个您尝试连接的示例。
  • 你没有给我们太多信息......错误是什么,连接字符串是什么,DB和应用程序在同一台机器上等等
  • I am not able to connect with SQL server 2008 R2 哪个版本,顺便说一句,在驱动程序文件夹(安装文件或 msi)中是很棒的手册,包含 Express 或非免费版本的代码示例,所有内容都在 MSDN 上进行了描述

标签: java sql sql-server-2008 sql-server-2008-r2


【解决方案1】:

你的问题有很多可能性:

  • 防火墙
  • 没有 TCP/IP 连接器
  • 某些服务未运行

尝试使用 SQL-management Studio 连接到您的数据库。如果这可行,请尝试通过 TCP/IP 使用 SQL-Authentification 进行连接。

更新

查看http://msdn.microsoft.com/en-en/library/ms143693(v=sql.90).aspx的文档

【讨论】:

  • 我可以使用 Management Studio 连接 SQL Server。我尝试使用 netstat 查找正在运行的服务,我发现 sqlservr.exe 在 0.0.0.0:65010 上运行我尝试在连接字符串中使用相同的 ip,但它不起作用
【解决方案2】:

一个明显的问题是 SQL Server 侦听端口 1433,而不是 1434。我已经回答了这个问题elsewhere,但我不能确定它是否与您的问题完全匹配,因为您没有告诉我们会收到什么错误信息。

【讨论】:

  • @user1259350 所以“TCP/IP 连接...失败”,正如我所提到的,您连接到错误的端口。您是否阅读了我链接到的另一个问题并尝试在连接字符串中设置正确的端口?
  • @user1259350 您是否在服务器上启用了 TCP/IP? SSMS 可以连接的事实并不能告诉您太多,因为它可能使用名称管道或共享内存进行连接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多