无法远程连接到SQL Server实例

时间:2011-08-08 19:50:16

标签: sql-server database remote-access sql-server-2008r2-express

我正在尝试从本地计算机上的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点以后的工作
  3. 我尝试使用Web平台安装程序在我的VPS上安装SSMS但它仍然失败。我不知道它为什么失败,因为它似乎没有给出原因。有谁知道我怎么能以不同的方式允许远程连接?

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

    更新

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

    另一个更新:

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

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

10 个答案:

答案 0 :(得分:47)

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

    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. 在“Surface Area Configuration”实用程序中,单击“SQL Server”链接 配置管理器“
    3. 展开“SQL Server网络配置”和 选择协议。
    4. 启用TCP / IP。如果你需要命名管道,那么你可以 在这里启用它们。
  • 最后但并非最不重要的是,Windows防火墙需要允许连接到SQL Server

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

更多信息:

作为最后一点,SqlLocalDB仅支持命名管道,因此您无法通过网络连接到它。

答案 1 :(得分:8)

除了将Services.msc中的SQL Server Browser服务配置为Automatic,并启动该服务之外,我还必须启用TCP / IP:SQL Server Configuration Manager SQL Server网络配置| [实例名称]的协议| TCP / IP

enter image description here

答案 2 :(得分:5)

  1. 在您的VPS上启动SQL Server配置管理器。

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

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

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

答案 3 :(得分:2)

  1. 打开SQL Server配置管理器.... 2.检查TCP和UDP是否正在运行.... 3.如果没有运行,请启用它们并检查SQL Server Browser是否正在运行。如果没有运行,请将其打开.....

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

  3. 5。Click here to see the steps to open a specific port in windows firewall ....

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

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

答案 4 :(得分:1)

禁用防火墙并尝试连接。

如果可以,请启用防火墙并

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

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

然后重试。

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

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

答案 7 :(得分:0)

打开mysql服务器配置管理器。 单击SQL Server服务,在右侧选择您在安装过程中创建的服务器(默认情况下,其状态为停止),单击一次,然后在工具栏上出现一个播放按钮,然后单击此播放按钮,等待直到其状态变为“ 正在运行”。现在好了。切换回sql server management studio;将“ 服务器类型”切换为“ 数据库引擎”,将“ 身份验证”切换为“ SQL Server身份验证”,默认登录名是“ sa ”,密码是您在创建服务器时选择的密码。现在您工作顺利。

答案 8 :(得分:0)

我知道这个孩子已经快1.5岁了,但是我希望我可以帮助别人找到我所找到的东西。

我已经构建了一个控制台应用程序和一个UWP应用程序,并且我的控制台连接良好,但不是我的UWP。经过数小时的讨论,如果是托管SQL数据库的Intranet服务器,则必须启用“专用网络(客户端和服务器)”。它位于Package.appxmanifest和“功能”标签下。Screenshot

答案 9 :(得分:0)

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