SQL Server无法连接远程数据库的解决方法
SQL Server无法连接远程数据库的解决方法
使用SQL Server Management Studio无法连接远程服务器,提示以下错误:
意思是说不能在数据库之间建立一个连接,原因是命名管道提供者出现错误。其实这是一个比较典型的数据库服务器设置问题,在局域网或广域网中都可能会遇到,我们只需要对数据库服务器进行一些配置便可以解决这个问题
一、确保服务器端数据库服务已经启动
开始->所有程序->Microsoft SQL Server 2008->Configutation Tools,打开SQL Server Configuration Manager,点击SQL Server Services,查看数据库服务是否已经启动,如果服务未开启,手动启动它。当然,你还可以通过点击Windows中的开始->控制面板->管理者工具->服务,来查看相应的数据库服务是否启动。或者如果服务器和你的机器在同一网络,你还可以通过命令“sqlcmd -L”(注意L要大写)去查看该网络内所有可用的SQL Server服务器。
二、在SQL Server管理器中启用远程连接
这一步通常会被数据库管理员忽略,如果未启用数据库远程连接,数据库实例只允许在本地进行连接而不能被远程连接,启用远程连接同样非常重要。默认设置中远程连接是被禁止的。如下图,打开SQL Server Management Studio,右键点击数据库实例然后选择属性菜单。
选择“允许用户对该服务器进行远程链接”选项后,检查是否问题已经排除。如果远程链接已经成功,该过程已经完成。若用户发现“提醒错误对话框”依然弹出,那么还需要做的是:
三、在SQL Server Configuration中启用TCP/IP
多个SQL Server服务器之间通过网络相互通信是需要TCP/IP支持的,为使SQL Server服务器能被远程连接必须确保TCP/IP已经启用。按照前面介绍的步骤打开SQL Server Configuration Manager,然后打开SQL Server Network Configuration,选择你要设置的数据库,然后点击TCP/IP,右键启用。如果有必要,你还可以启用Named Pipes。记住,所有的修改都必须在重启SQL Server服务之后才能生效!
确定“微软SQL服务器网络选项协议”中的TCP/IP协议对服务器来说是有效的。再次检查是否已经可以执行远程链接。若“错误提醒对话框”依然弹出,我们需要进一步检查SQL服务器防火墙选项。
四、检查SQL服务器防火墙设置
如果在进行完上两步操作后,用户端计算机仍然无法远程链接到SQL服务器,用户需要做的是对SQL服务器防火墙进行重新配置。
很多时候我们在对数据库服务器本身做了很多次设置后仍然无法成功建立远程连接,这时就要考虑是否是防火墙在作怪。默认情况下,许多端口号和服务都会被防火墙所禁止而不能远程访问或执行,SQL Server默认的端口号也不例外。我们应该重新设置Windows防火墙给SQL Server添加例外。除非人为修改,默认情况下SQL Server的端口号是1433,将该端口号添加到Windows防火墙中。如果SQL Server存在命名实例,那么也应该将SQL Server browser添加到Windows防火墙中
在进行这一步操作时,首先找到SQL服务器上那个端口支持TCP/IP协议。用户可以在SQL服务器防火墙已经处于运行状态下,点击“TCP/IP协议”选择“属性”:
从上图中我们可以看出,这台SQL服务器上支持TCP/IP协议的是1433端口。下一步要做的是在防火墙的配置中允许1433端口支持TCP/IP协议即可。如果服务器上运行的是Windows 7操作系统,其配置步骤为(其他微软操作系统的做法类似),打开“控制面板”选择“Windows防火墙”选项:
选择“高级设置”后,在右边菜单栏中找出“具有高级安全选项的Windows防火墙”并将其打开。打开后会发现在左边菜单栏中有“入站规则(Inboud Rules)”选项。将该选项打开,并在右边菜单栏中选择“新建规则(New Rule)”选项:
打开“新建规则”选项后,利用“新内置绑定规则向导”为1433端口配置“内部绑定协议”配置为适用于TCP/IP协议即可。(前提是,需要完成该步骤以前所述的所有步骤),根据下面的几幅图为1433端口配置适用于1433端口即可:
完成上述的步骤,并确认每一步都操作正确后,用户的SQL服务器即可支持远程链接