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

Posted

技术标签:

【中文标题】如何使 MS SQL Server 可用于连接?【英文标题】:How can I make MS SQL Server available for connections? 【发布时间】:2010-11-08 09:01:44 【问题描述】:

我正在尝试从 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,并重新启动了我的实例。我仍然被告知“服务器不可用。”

还有其他想法吗?

【问题讨论】:

你的连接字符串是什么? 奥利弗,我不知道连接字符串是什么。 【参考方案1】:

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

由于“SQL Server 外围应用配置”工具已被“Facets”替代 - 这对我来说并不明显。

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


步骤

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

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

    双击 TCP/IP

    协议下:

    确保已启用

    IP地址下:

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

    找到您要连接的 IP 地址并将 EnabledActive 设置为 Yes

【讨论】:

对我来说,启用 TCP/IP 协议就足够了。 还要检查配置下列出的端口号。默认连接到 1433,但在某些服务器上使用的端口已更改。 我想亲吻你,经过一个小时的调试,回答诸如“确保你没有通过防火墙阻止端口”之类的答案,你的终于奏效了。我什至不知道为什么设置 IPAll 端口会修复它(我在 ip 上设置端口,但没有用)。谢谢 对我来说这行得通。禁用 TCP/IP 协议是问题很好的答案。【参考方案2】:

在搞乱连接之前,首先检查 SQL Server 服务是否正在实际运行。

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

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

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

http://support.microsoft.com/kb/914277

【讨论】:

【参考方案3】:

我使用的是 SQL Server 2012 并且遇到了同样的问题。

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

Active - YES - 如果您只是单击“是”,它将不起作用 Enabled - 也点击是。我没注意这个 并且想知道为什么它不起作用,浪费了很多时间 过程

你可以用这个来测试监听端口:

netstat -an

【讨论】:

【参考方案4】:

根据您使用的 SQL Server 版本,它可能默认设置为仅使用命名管道。

您需要启用与服务器的 TCP/IP 连接。如果您能告诉我们您使用的是哪个版本的 SQL Server,我们可以提供有关如何启用 TCP/IP 的更准确说明。

【讨论】:

是的,除此之外,您甚至可以查看 Chad 建议检查实例是否正在运行的内容。 我使用的是 2008 版本,我想我现在启用了 TCP/IP,但没有任何改进。【参考方案5】:

像往常一样,检查显而易见的: 1.查看您的路由器是否启用了端口 1433 和 1434(这些是 IP/UDP 通信的默认值) 2. 确保如果您在客户端或服务器上安装了防火墙,则所述端口不会被阻止(这是我的“陷阱”)。 3. 进入 Sql 配置管理器,在 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 身份验证,请确保已将这些用户添加到服务器登录。

【讨论】:

【参考方案6】:

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

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

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

【讨论】:

【参考方案7】:

这是我的截图。如果您看不懂文字,请下载图像或将图像复制并粘贴到画图中。

在 Glassfish 内部:

“常规”标签:

“附加属性”选项卡

URL= jdbc:sqlserver://localhost;databaseName=NETEAV

Microsoft SQL Server Management Studio 内部:

【讨论】:

【参考方案8】:

检查连接是否被防火墙阻止。如果第三方防火墙处于活动状态,则它可能会阻止 TCP 连接。在这一步之后- 1.检查TCP是否启用 一种。打开 SQL Server 配置管理器 湾。 SQL Server 网络配置 C。 MSSQLSERVER 的协议 d。 TCP – 启用它 e.还要检查全部听 - 是 F。在 IP 地址选项卡中,IPAll – 端口号应为 1433

【讨论】:

谢谢!我在任何地方都设置了端口,除了在 IPAll 下,因为我的 IP 已经在上面列出了。现在我可以连接了。【参考方案9】:

首先,检查 sql server 服务是否正在运行。如果您使用的是 SQL 2005 或 2008,请检查配置管理器 (2008) 或 Surface 是配置工具 (2005) 以确保启用 TCP/IP 协议并允许 TCP/IP 连接。使用 SSE(express) 这些默认情况下是关闭的,这会导致您的问题。此外,如果您正在运行多个实例,您可能需要运行 SQL 浏览器服务。如果是这种情况,您应该能够使用 (local) 作为服务器地址来连接对象资源管理器,因为这将使用本地/共享内存连接。

【讨论】:

【参考方案10】:

从 2005 年起,SQL 服务器浏览器服务开始运行。 那个骗了我很多次。

【讨论】:

【参考方案11】:

连接到 SQL Server 2014 时出现同样的错误。

我登录了 sql server 以确保设置了正确的端口号。 对于我的情况,没有为 sql 实例设置端口号。

因此我从连接字符串 url 中删除了端口号,然后我就可以连接了。

遇到这个问题的朋友可以试试这个方法

【讨论】:

以上是关于如何使 MS SQL Server 可用于连接?的主要内容,如果未能解决你的问题,请参考以下文章

OleDbConnection SqlConnection DB2Connection 区别

MS SQL Server:事务处理概念和 MS DTC 概述 (简述)

难以理解 SAS 中的“_n_”变量,以及它如何应用于连接函数

与 MS SQL Server 完全联接

如何根据 SQL 中的时间戳查找特定事件的下一个序列?

sql server 2014 alwayson 可用性组 特性