35

我正在尝试从本地计算机上的 SQL Server Management Studio 访问我的 VPS 上的 SQL Server 实例。它不起作用(我得到的错误是:

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。

我认为这是因为我需要配置数据库引擎以允许远程连接(如果我错了,请纠正我!)。所以我找到了这个分步指南来帮助我做到这一点:http ://www.linglom.com/2009/03/28/enable-remote-connection-on-sql-server-2008-express/我必须在指南中指出第 10 点,现在我被卡住了!我的 VPS 上没有安装 SQL Server Management Studio。无论如何,这给我留下了两个选择:

  1. 安装 SSMS
  2. 在不安装 SSMS 的情况下找到另一种方法来执行指南中的第 10 点

我尝试使用 Web 平台安装程序在我的 VPS 上安装 SSMS,但它一直失败。我不知道它为什么会失败,因为它似乎没有给出原因。有谁知道我如何以不同的方式允许远程连接?

我的 VPS 上安装的 SQL Server 版本是 SQL Server 2008 R2 Express。

更新

我试图在我的笔记本电脑和 VPS 上禁用防火墙,看看是否是防火墙问题。这对错误消息没有任何影响。

另一个更新:

现在已经能够安装 SSMS(我直接从网站安装而不是使用 WPI),我已经能够检查服务器是否配置为允许远程连接(我去了 SSMS,连接到 SQL Server 实例,对-单击连接,单击属性,转到连接选项卡。“允许远程连接到此服务器”已被勾选)。

解决方案

感谢大家帮助我解决这个问题!我终于设法让它工作了!我按照 Filip De Vos 的建议在我的 VPS 上打开了防火墙中的端口,然后我收到了不同的错误消息。这导致我进一步调查,发现我使用了错误的凭据登录!因此,我为 sa 用户设置了密码,并成功使用该密码登录!再次感谢!

4

10 回答 10

55
  • 要启用混合身份验证,您可以更改以下注册表项:

    HKLM\Software\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer\LoginMode
    

    将值更新为 2 并重新启动 Sql Server 服务以允许混合身份验证。请注意,可能需要更新 MSSQL.1 以反映您尝试更改的 SQL Server 实例的数量。

  • 连接错误的一个原因可能是安装在服务器上的病毒扫描程序阻止了sqlserver.exe.

  • 另一个原因可能是 SQL Server Browser 服务未运行。当此服务未运行时,您无法连接命名实例(当它们使用动态端口时)。

  • 也有可能 Sql Server 没有设置为侦听 TCP 连接,并且只允许命名管道。

    1. 在开始菜单中,打开程序 > Microsoft SQL Server 2008 > 配置工具 > SQL Server 外围应用配置
    2. 在外围应用配置实用程序中,单击链接“SQL Server 配置管理器”
    3. 展开“SQL Server 网络配置”并选择协议。
    4. 启用 TCP/IP。如果您需要命名管道,那么您也可以在此处启用它们。
  • 最后但同样重要的是,Windows 防火墙需要允许连接到 SQL Server

    1. 当您使用“动态端口”系统时,为 sqlserver.exe 添加一个例外。
    2. 否则,您可以为 SQL Server 端口设置例外(默认端口 1433)
    3. 还要为 SQL Server Browser 添加一个例外。(udp 端口​​ 1434)

更多信息:

最后一点,SqlLocalDB只支持命名管道,所以你不能通过网络连接到它。

于 2011-08-10T12:52:11.693 回答
18

除了将 Services.msc 中的 SQL Server Browser 服务配置为自动并启动该服务之外,我还必须在以下位置启用 TCP/IP:SQL Server 配置管理器 | SQL Server 网络配置 | [实例名称] 的协议 | TCP/IP

在此处输入图像描述

于 2016-10-18T20:03:03.957 回答
8
  1. 在您的 VPS 上启动 SQL Server 配置管理器。

  2. 查看 SQL Server 网络配置。确保 TCP/IP 已启用

  3. 接下来看看 SQL Server 服务。确保 SQL Server Browser 正在运行。

  4. 为您的 SQL Server 实例重新启动服务。

于 2011-08-08T19:55:48.007 回答
2
  1. 打开 SQL Server 配置管理器.... 2.检查 TCP 和 UDP 是否正在运行.... 3.如果没有运行,请启用它们并检查 SQL Server 浏览器是否正在运行。如果没有运行转它在.....

  2. 接下来,您必须检查 TCP 和 UDP 正在使用哪些端口。您必须从 Windows 防火墙打开这些端口.....

5.点击这里查看在windows防火墙中打开特定端口的步骤....

  1. 现在 SQL Server 已准备好通过 LAN 访问......

  2. 如果您想远程访问它(通过互联网),您必须做另一项工作,即“端口转发”。您已打开路由器上 SQL Server 中使用的 TCP 和 UDP 端口。现在路由器的配置不同了。如果您给我您的路由器的详细信息(即公司名称和版本),我可以向您展示如何转发特定端口的步骤。

于 2014-12-19T10:29:24.303 回答
2

我遇到了同样的问题,我的防火墙配置正确,在 SQL Server 配置管理器中启用了 TCP/IP,但我仍然无法从托管它的计算机外部访问我的 SQL 数据库。我发现解决方案是在服务中默认禁用 SQL Server Browser(并且在 SQL Server 配置管理器中没有可用的选项来启用它)。

我通过控制面板 > 管理工具 > 服务启用它,然后双击 SQL Server Browser。在常规选项卡中,使用下拉列表将启动类型设置为自动。然后返回 SQL Server 配置管理器并检查 SQL Server Browser 是否已启用。希望这可以帮助。 在此处输入图像描述

于 2016-07-03T15:26:20.757 回答
1

禁用防火墙并尝试连接。

如果可行,则启用防火墙并

Windows Defender 防火墙 -> 高级设置 -> 入站规则(右键单击)-> 新规则 -> 端口 -> 允许端口 1433(公共和私有)-> 添加

对出站规则执行相同的操作。

然后再试一次。

于 2020-10-01T06:32:59.043 回答
0

我最近从 SQL 2008 R2 升级到 SQL 2012 并且遇到了类似的问题。问题是防火墙,但更具体地说是 SQL SERVER 的防火墙规则。自定义规则指向 SQL Server 的早期版本。试试这个,打开 Windows 防火墙>高级设置。找到 SQL Server 规则(它可能有一个自定义名称)。右键单击并转到属性,然后是程序和服务选项卡。如果选择了程序 - 此程序,您应该浏览正确版本的 sqlserver.exe。

于 2014-01-27T23:22:41.050 回答
0

打开 SQL Server 配置管理器。

单击 SQL Server Services,在右侧选择您在安装过程中创建的服务器(默认情况下其状态为停止),单击它一次,工具栏上应该会出现一个播放按钮。单击此播放按钮,等待其状态变为“正在运行”。现在你很好。

打开 SQL Server 管理工作室;将“服务器类型”切换为“数据库引擎”,将“身份验证”切换为“ SQL Server 身份验证”。默认登录名是“ sa ”,密码是您在创建服务器时选择的密码。现在你可以开始工作了。

于 2018-11-07T08:52:46.797 回答
0

如果您有多个实例...然后确保所有实例的端口号是唯一的,并且除了默认一个之外没有人的端口号是 1433...

于 2021-02-02T12:09:24.203 回答
0

我知道这已经快 1.5 岁了,但我希望我能帮助我找到的人。

我已经构建了一个控制台应用程序和一个 UWP 应用程序,并且我的控制台连接良好,但不是我的 UWP。经过数小时的敲击后,如果它是托管 SQL 数据库的 Intranet 服务器,则必须启用“私有网络(客户端和服务器)”。它位于 Package.appxmanifest 和 Capabilities 选项卡下。截屏

于 2020-04-30T20:25:36.080 回答