刚刚安装的数据库系统,按照默认安装的话,很可能在进行远程连接时报错,通常是错误:"在连接到 SQL Server 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) "搜MSDN,上面有一片机器翻译的文章,是在让人难以明白,现在总结如下:明白了SQL Server是个网络数据库就可迎刃而解了,简单的分为下面的集中情况。
1. 数据库引擎没有启动。
有两种启动方式:
(1)开始->程序->Microsoft SQL Server ->SQL Server 外围应用配置器,在打开的界面单击"服务的连接的外围应用配置器",在打开的界面中找到Database Engine,单击"服务",在右侧查看是否已启动,如果没有启动可单击"启动",并确保"启动类型"为自动,不要为手动,否则下次开机时又要手动启动;
(2)可打开:开始->程序->Microsoft SQL Server ->配置工具->SQL Server Configuration Manager,选中SQL Server 服务中SQL Server(MSSQLSERVER) ,并单击工具栏中的"启动服务"按钮把服务状态改为启动;
使用上面两种方式时,有时候在启动的时候可能会出现错误,不能启动,这时就要查看"SQL Server 配置管理器"中的SQL Server 网络配置->MSSQLSERVER协议中的VIA是否已启用,如果已启用,则把它禁止.然后再执行上述一种方式操作就可以了.
2. 是否已经允许远程连接。
这个部分可以简单的分为4个方面,分别是在 SQL Server上启用远程连接、启用SQL Server 浏览服务、在Windows 防火墙中为SQL Server 创建例外和在Windows 防火墙中为“SQLBrowser”创建例外。下面是几个具体的操作方式,摘自MSDN,个人觉得文章的黑体部分应当特别的一起我们的注意。
在SQLServer 实例上启用远程连接
1.指向“开始->程序->Microsoft SQL Server ->配置工具->SQL Server 外围应用配置器”
2.在“SQL Server 外围应用配置器”页, 单击“服务和连接的外围应用配置器”
3.然后单击展开“数据库引擎”,选中“远程连接”,在右边选中“本地连接和远程连接”,
再选择要使用的协议,( 这个地方应当启用TCP/IP 和命名管道服务!)单击“应用”,您会看到下消息:
“直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。”,单击“确定”按钮返回
4.展开“数据库引擎”,选中“服务”,在右边单击“停止”,等到 MSSQLSERVER 服务停止,
然后单击“启动”,重新启动MSSQLSERVER 服务。
启用 SQLServer 浏览器服务
1.指向“开始->程序->Microsoft SQL Server ->配置工具->SQL Server 外围应用配置器”
2.在“SQL Server 外围应用配置器”页, 单击“服务和连接的外围应用配置器”
3.然后单击展开“SQL Server Browser”,选中“服务”,在右边“启动类型”选择“自动”,
再单击“启动”,单击“确定”按钮返回
在Windows 防火墙中为“SQL Server ”创建例外
1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序”
2.在“添加程序窗口”中单击“浏览”
3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\ MSSQL.1 \MSSQL\Binn\sqlservr.exe”,
单击“确定”返回
注意 : 路径可能会根据 SQL Server 安装不同而不同。 MSSQL.1 是占位符,对应数据库实例ID。
4.对每个需要打开远程访问的SQL Server 实例,重复步骤 1 至 3。
在Windows 防火墙中为“SQLBrowser”创建例外
1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序”
2.在“添加程序窗口”中单击“浏览”
3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe”,
单击“确定”返回
注意 : 路径可能会根据 SQL Server 安装不同而不同。
在使用.NET开发进行时,会遇到使用连接字符串连接SQL Server 数据库使用机器名称和localhost都能连接,但是使用IP地址却不能连接的问题,解决的办法是在SQL Server实例上启用本地和远程连接,并且在选择协议的时候使用TCP/IP和命名管道服务即可解决。
************************************************************.10.07 另一篇文章的答案*********************************************************************************
SQL如何连接远程数据库?
悬赏分:5 - 解决时间:-9-1 20:36
SQL05中如何像SQL2K一样在企业管理器中连接远程数据库
SQL2K的做法是:在企业管理器中右键组----新建SQL Server 注册---填写对方数据库IP地址,用户名,密码--- 注册完成 之后像操作本地数据库一样了
但SQL05却变了,现在不清楚如何连接远程数据库,请有过这方面经验的朋友讲一下,谢谢。最好能详细点
问题补充:
一楼的朋友我要的不是代码,而是如何在企业管理器里连接
最佳答案
在配置工具中的服务和远程连接的外围应用配置器 ---》远程连接--》本地连接和远程连接--》同时使用TCP/IP和named pipes。确定,重新启动sql服务。
然后用 SQL Server Management Studio,服务器类型选择数据库引擎
服务器名称输入你要连接的数据库实例名或IP地址,选择sqlserver身份验证,输入用户名、密码,就可以连接了
***************************************************
远程连接SQL Server 数据库
由于项目需要,我要远程连接到一台团队服务器上的SQL Server 数据库。但是试了几次都没有成功,后来在网上搜了很多相关资料终于搞定了,这里把它总结一下。
确保服务器端的数据库中存在sa。
在SQL Server外围应用配置器->服务和连接的外围应用配置器中,确保已启动MSSQLSERVER的Database Engine服务,并将远程连接设为“同时使用TCP/IP和named pipes”(事实上我在使用中发现设为“仅使用TCP/IP”也可以连接——团队服务器上部署了Sharepoint和VSTFS,所以这个已经选中了)。
确保要调用的数据库是支持远程调用的。打开SQL Server Management Studio,右键数据库服务器选属性,在打开的对话框中选择连接页,把“允许远程连接到此服务器”选上。
检查防火墙。
下面是我的情况,如果你和我一样不是使用Windows身份验证,而且上面还不能解决问题,可以试试下面的方法:
在前面第3步的属性页面,选“安全性”页,选“SQL Server和Windows身份验证模式”。
确保所要登录的SQL Server帐户已经设置了相应的服务器或数据库角色。在Management Studio的安全性中找到该帐户设置属性。
这样基本就可以了。