我正在尝试从Java程序连接到MS SQL Server(在我的机器上运行)。我得到了以下冗长的例外情况:
Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host localhost, port 1433 has failed. Error: "Connection refused: connect. Verify the connection properties, check that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port, and that no firewall is blocking TCP connections to the port.".
当我检查“属性”并在MS SQL的对象资源管理器中单击“查看连接属性”时,我发现“服务器不可用”。这似乎与异常消息有关。
如何使服务器可用?
编辑:
我正在使用SQL Server 2008,现在我已经启用了TCP / IP,并重新启动了我的实例。我仍然被告知“服务器不可用。”
还有其他想法吗?
答案 0 :(得分:59)
我也遇到了这个问题。 MSKB文章适用于SQL Server 2005。
由于“SQL Server表面区域配置”工具已被取代而不是“Facets” - 这对我来说并不明显。
我通过设置TCPAll端口并启用相关IP来解决此问题。
打开Sql Server配置管理器(开始 - >程序 - > Microsoft SQL Server 2008 - >配置工具)
展开SQL Server网络配置 - > [您的服务器实例]
双击TCP / IP
在协议下:
确保已启用 是
在 IP地址下:
滚动到底部并在IPAll下设置TCP端口(默认为1433)
找到您要连接的IP地址,并将已启用和有效设置为是
答案 1 :(得分:7)
在弄乱连接之前,首先检查SQL Server服务是否实际运行。
您可以使用SQL Server配置管理器(位于配置工具文件夹中)或Windows控制面板中的标准服务控制台执行此操作。
检查服务是否已启动并运行后,您需要确保已将SQL Server配置为允许远程连接。
有关如何执行此操作的说明,请参阅下文:
答案 2 :(得分:5)
我使用的是SQL Server 2012并且遇到了同样的问题。
请注意,当您激活TCP / IP时,有两个选项:
Active - YES
- 如果您只是单击是,则无法正常工作Enabled
- 点击“是”。我没注意这个
并且想知道为什么它不起作用,浪费了很多时间
过程您可以使用以下方法测试侦听端口:
netstat -an
答案 3 :(得分:4)
根据您使用的SQL Server版本,默认情况下可能只设置为使用命名管道。
您需要启用到服务器的TCP / IP连接。如果您可以告诉我们您正在使用哪个版本的SQL服务器,我们可以提供有关如何启用TCP / IP的更精确说明。
答案 4 :(得分:4)
像往常一样,检查明显: 1.查看您的路由器是否启用了端口1433和1434(这些是IP / UDP通信的默认设置) 2.确保如果客户端或服务器上有防火墙,则表示端口未被阻止(这是我的“陷阱”)。 3.进入Sql Configuration Manager并在Sql Server网络配置下,确保已启用TCP / IP。此外,在Sql Native Client 1.0(如果已安装)下的同一程序中,它也启用了TCP / IP。
确保所有连接信息正常工作的廉价而简单的方法是创建.udl文件(系统中的任何位置),填写相应的信息并点击“测试连接”。如果那里有什么问题,你会得到关于问题的(公平)信息。 如果您不了解.udl文件,请右键单击Windows资源管理器(右侧窗格)以创建“新文本文件”。键入任何可接受的名称,但将扩展名从.txt更改为.udl。系统会要求您确认扩展更改,回答是。创建后,单击该文件(如果不使用单击,则单击双击)以打开它。有4个标签。第一个允许您选择提供者。对于Visual Studio使用Sql Native客户端,对于任何其他程序,请尝试使用标准的Sql Server Provider。在第二个选项卡上,您可以填写服务器名称,sql server用户名和密码(如果使用)等。然后测试连接。另外一项需要注意的事项 - 如果您使用的是Windows身份验证,请确保已将这些用户添加到服务器登录中。
答案 5 :(得分:3)
打开Sql Server配置管理器。 (开始|程序|无论什么版本的sql server |配置工具)
向下浏览到“SQL Server服务”并重新启动您的实例。但是,您可以通过右键单击实例并选择重新启动来在Management Studio中执行此操作。
如果重启失败,请查看“计算机管理”事件查看器|应用程序并查找sql server事件。它将在此处记录成功和错误消息。
答案 6 :(得分:3)
以下是我的截图。如果您无法阅读这些文字,请下载图像或将图像复制并粘贴到Paint中。
Inside Glassfish:
"通用及#34;标签:
"其他属性"标签
URL = jdbc:sqlserver:// localhost; databaseName = NETEAV
Microsoft SQL Server Management Studio内部:
答案 7 :(得分:3)
检查连接是否被防火墙阻止。如果第三方防火墙处于活动状态,则可能会阻止TCP连接。在此步骤之后 -
1.检查TCP启用是否启用
一个。打开SQL Server配置管理器
湾SQL Server网络配置
C。 MSSQLSERVER的协议
d。 TCP - 启用它
即还要检查全部听 - 是
F。在IP地址选项卡中,IPAll - 端口号应为1433
答案 8 :(得分:2)
首先,检查sql server服务是否正在运行。如果您使用的是SQL 2005或2008,请检查Configuration Manager(2008)或Surface是配置工具(2005)以确保启用TCP / IP协议并允许TCP / IP连接。使用SSE(快速),默认情况下这些都会关闭,这会导致您的问题。此外,如果您正在运行多个实例,则可能需要运行SQL浏览器服务。如果是这种情况,您应该能够使用(本地)作为服务器地址来连接对象资源管理器,因为这将使用本地/共享内存连接。
答案 9 :(得分:1)
从2005年开始, SQL服务器浏览器服务已经开始运行 那个骗了我很多次。
答案 10 :(得分:0)
连接到SQL Server 2014时发现相同的错误。
我登录了sql server以确保设置了正确的端口号。
对于我的情况,没有为sql实例设置端口号。
因此我从连接字符串url中删除了端口号,然后我才能连接。
任何人都面临这个问题,可以这样试试