23

我想从本地机器上的SQL Server Management Studio访问我的VPS上的SQL Server实例。它不工作(我得到的错误是:。无法远程连接到SQL Server实例

出现与网络相关的或特定于实例的错误而 建立SQL Server的连接服务器没有被发现或 是无法访问验证实例名称是否正确,以及 SQL Server配置为允许远程连接。

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

  1. 安装SSMS
  2. 找到另一种方式在引导做点10起,而无需SSMS安装

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

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

更新

我试图禁用我的两个笔记本电脑上的防火墙和VPS,看它是否是一个防火墙问题。这对错误信息没有影响。

另一个更新:

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

SOLUTION

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

+0

的可能重复[无法连接到SQL Server 2005(http://stackoverflow.com/questions/873924/cant-connect-to-sql-server-2005) – ig0774

+1

与编程相比,这更像是一个服务器配置问题,您可能会在serverfault.com上询问更好的运气。 – JYelton

+0

@JYelton谢谢 - 我也会尝试。 – Leah

回答

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

    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浏览器添加例外。 (UDP端口1434)

的更多信息:

作为最后一个音符,SqlLocalDB只支持命名管道,所以你无法连接通过网络发送给它。

+0

这不报告登录失败而不是网络/连接错误? – Tao

+0

这是在问题 –

+0

@Tao中的第2点的答案添加了额外的步骤以允许传入连接 –

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

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

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

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

+0

感谢您的帮助。不过,我已经尝试了所有这些步骤,详见我的问题中的链接。我有这么多,错误信息仍然出现。 – Leah

+0

啊,对不起,我没有意识到链接有相同的基本步骤。你不需要SSMS不一定是因为它本质上是一个连接到服务器,让您执行查询和管理数据库表,等等。如果服务器实例设置为不允许Windows身份验证(通过步骤10-12覆盖的客户端应用程序)你需要知道sql user/pw组合才能连接。我不确定你可以在没有SSMS的情况下更改登录方法。 – JYelton

+0

利亚只是FYI SQL Server始终允许Windows身份验证,但SQL用户认证可以启用/禁用。(每[我如何禁用SQL Server的Windows身份验证模式](http://serverfault.com/q/141698/29508))。祝你好运。 – JYelton

0

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

2
  1. 打开SQL Server配置管理器.... 2.检查wheather TCP和UDP正在运行或不.... 3.如果没有运行,请启用它们,并检查SQL Server浏览器正在运行或not.If未运行,打开它.....

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

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

  • 现在SQL Server是准备访问在LAN .......

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

  • 0

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

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

    6

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

    enter image description here