Java 如何使MS SQL Server可用于连接?

Java 如何使MS SQL Server可用于连接?,java,sql-server,jdbc,Java,Sql Server,Jdbc,我正在尝试从Java程序连接到MS SQL Server(在我的机器上运行)。我得到了以下冗长的例外: 线程“main”com.microsoft.sqlserver.jdbc.SQLServerException中的异常:到主机localhost端口1433的TCP/IP连接失败。错误:“连接被拒绝:连接。请验证连接属性,检查SQL Server实例是否正在主机上运行并在端口上接受TCP/IP连接,以及是否没有防火墙阻止到端口的TCP连接。”。 当我在MS SQL的对象浏览器中选中“属性”并

我正在尝试从Java程序连接到MS SQL Server(在我的机器上运行)。我得到了以下冗长的例外:

线程“main”com.microsoft.sqlserver.jdbc.SQLServerException中的异常:到主机localhost端口1433的TCP/IP连接失败。错误:“连接被拒绝:连接。请验证连接属性,检查SQL Server实例是否正在主机上运行并在端口上接受TCP/IP连接,以及是否没有防火墙阻止到端口的TCP连接。”。

当我在MS SQL的对象浏览器中选中“属性”并单击“查看连接属性”时,我发现“服务器不可用”。这可能与异常消息有关

如何使服务器可用

编辑:

我正在使用SQLServer2008,现在我已经启用了TCP/IP,并重新启动了我的实例。我仍然被告知“服务器不可用”


还有其他想法吗?

打开Sql Server配置管理器。(启动|程序| sql server的任何版本|配置工具)

向下浏览到“SQL Server服务”并重新启动实例。但是,您可以在ManagementStudio中通过右键单击实例并选择restart来执行此操作


如果重新启动失败,请检查计算机管理|事件查看器|应用程序并查找sql server事件。它将在此处记录成功和错误消息。

根据您使用的SQL Server版本,默认情况下,它可能只设置为使用命名管道


您需要启用到服务器的TCP/IP连接。如果您能告诉我们您使用的是哪个版本的SQL server,我们就可以更准确地说明如何启用TCP/IP。

在处理连接之前,首先检查SQL server服务是否正在实际运行

您可以使用SQL Server配置管理器(位于“配置工具”文件夹中)或Windows控制面板中的“标准服务”控制台来执行此操作

检查服务是否已启动并正在运行后,需要确保SQL Server已配置为允许远程连接

有关如何执行此操作的说明,请参见下文:


首先,检查sql server服务是否正在运行。如果您使用的是SQL 2005或2008,请检查Configuration manager(2008)或Surface are Configuration tool(2005),以确保TCP/IP协议已启用,并且允许TCP/IP连接。对于SSE(express),默认情况下这些选项处于关闭状态,这将导致您的问题。另外,为了防止运行多个实例,您可能需要运行SQL browser服务。如果是这种情况,您应该能够使用(本地)作为服务器地址连接对象资源管理器,因为这将使用本地/共享内存连接。

像往常一样,检查明显的: 1.查看路由器是否启用了端口1433和1434(这些是IP/UDP通信的默认值) 2.如果您在客户端或服务器上安装了防火墙,请确保所述端口未被阻止(这是我的“gotcha”)。 3.进入Sql Configuration Manager并在Sql Server网络配置下,确保启用了TCP/IP。此外,在Sql Native Client 1.0(如果已安装)下的同一程序中,它也启用了TCP/IP

确保所有连接信息都正常工作的一种廉价而低劣的方法是创建一个.udl文件(系统中的任何位置),填写适当的信息,然后点击“测试连接”。如果有什么问题,你会得到一个(相当)关于这个问题的信息。
如果您不知道.udl文件,请在Windows资源管理器(右侧窗格)中右键单击以创建“新文本文件”。键入任何可接受的名称,但将扩展名从.txt更改为.udl。您将被要求确认分机更改,回答是。创建文件后,单击该文件(如果不使用单键单击,则双击)将其打开。共有4个选项卡。第一个选项允许您选择提供者。对于Visual studio,请使用Sql本机客户端;对于任何其他程序,请尝试使用标准Sql Server提供程序。在第二个选项卡上,您可以填写服务器名称、sql server用户名和密码(如果使用)等,然后测试连接。另一项需要注意的事项-如果您正在使用Windows身份验证,请确保已将这些用户添加到服务器登录。

从2005年起,SQL Server browser服务已运行。

那件事愚弄了我很多次。

我也遇到了这个问题。 MSKB文章适用于SQLServer2005

由于“SQLServer表面区域配置”工具已经取代了“Facets”,这对我来说并不明显

我通过设置TCPAll端口并启用相关IP解决了这个问题


台阶
  • 打开Sql Server配置管理器(开始->程序->Microsoft Sql Server 2008->配置工具)

  • 展开SQL Server网络配置->[您的服务器实例]

  • 双击TCP/IP

    • 协议下

      确保启用为是

    • 在IP地址下:

      滚动到底部并在IPAll下设置TCP端口(默认为1433)

      找到要连接的IP地址,并将“启用”和“活动”设置为“是”


  • 我使用的是SQL Server 2012,也有同样的问题

    请注意,激活TCP/IP时有两个选项:

    • 活动-是
      -如果您只需单击此按钮上的“是”,它将无法工作
    • 已启用
      -也单击此处的“是”。我没有注意到这一点 我想知道为什么它不起作用,浪费了很多时间 过程
    您可以使用以下方法测试侦听端口:

    netstat -an
    

    这是我的截图。如果你看不懂文字,那么下载图片或者复制并粘贴到画图中

    Ins