sql server数据库连接失败

2024-11-08 08:59:46
推荐回答(4个)
回答1:

如果客户端计算机上的别名设置错误,可能会引起连接问题。您可以使用客户端网络实用程序查看别名。为此,请按以下步骤操作: 1. 启动客户端网络实用程序。如果 SQL Server 客户端工具被安装在正在运行客户端应用程序的计算机上,请按照以下步骤启动客户端网络实用程序: a. 单击“开始”,然后指向“程序”。 b. 指向“Microsoft SQL Server”,然后单击“客户端网络实用程序”。 如果 SQL Server 客户端工具没有安装在客户端计算机上,请按照以下步骤启动客户端网络实用程序: a. 单击“开始”,然后单击“运行”。 b. 在“运行”对话框中,在“打开”框中键入 cliconfg,然后单击“确定”。 2. 在“SQL Server 客户端网络实用程序”窗口中,单击“常规”标签,然后启用您要使用的所有协议。注意:您必须至少启用 TCP/IP 协议和命名管道协议。 3. 单击“别名”标签,然后验证为 SQL Server 实例所配置的别名。 4. 验证别名的属性,确认服务器名或 IP 地址和协议的配置是正确的。 通过使用服务器名、IP 地址或者其他协议,您可以创建一个新的别名以测试连接性能。注意:在 Microsoft 数据存取部件 (MDAC) 的早期版本中,客户端网络实用程序的用户界面是不同的。因此,如果您没有看到本文中列出的选项,请在运行客户端应用程序的计算机上安装 MDAC 的新版本。验证 SQL Server 实例正在正确地侦听要验证 SQL Server 实例正在正确地侦听命名管道、TCP/IP 或您在客户端应用程序中使用的其他协议,请打开当前的 SQL Server 错误日志文件。SQL Server 错误日志文件可能包括与以下类似的条目:2003-11-06 09:49:36.17 server SQL server listening on TCP, Shared Memory, Named Pipes. 2003-11-06 09:49:36.17 server SQL server listening on 192.168.1.5:1433, 127.0.0.1:1433.通过分析 SQL Server 错误日志文件中的条目,可以验证 SQL Server 实例是否正在侦听正确的 IP 地址和端口。在默认情况下,一个默认的 SQL Server 实例侦听端口 1433。您还可以使用服务器网络实用程序来验证 SQL Server 的协议设置并更改 SQL Server 中的属性,包括可以连接到 SQL Server 和可以使用的端口的协议。关于使用服务器网络实用程序的更多信息,请参见 SQL Server 在线参考书中的“SQL Server 网络实用程序”专题。有时候,SQL Server 2000 可能不会绑定于端口 1433 或任何其他指定的端口。如果端口正被其他应用程序使用,或者如果您正在尝试使用一个错误的 IP 地址进行连接,就可能会出现此问题。因此,TCP/IP 到 SQL Server 的连接可能不成功,在 SQL Server 错误日志中您会收到下列错误信息:2001-11-14 15:49:14.12 server SuperSocket Info:Bind failed on TCP port 1433.有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 307197 ( http://support.microsoft.com/kb/307197/) PRB:TCP\IP 端口正由另一应用程序使用 如果通过 TCP/IP 连接您不能连接到 SQL Server 实例,请尝试使用命名管道协议或共享内存协议。在命令提示符下运行下面的命令,以获取关于正在使用的端口的信息:

回答2:

从这里我们可以看到客户端启用了哪些协议。一般而言,我们同样需要启用命名管道以及 TCP/IP 协议。  点击 TCP/IP 协议,选择"属性",可以检查客户端默认连接端口的设置,如下图所示。该端口必须与服务器一致。  单击"别名"选项卡,还可以为服务器配置别名。服务器的别名是用来连接的名称,连接参数中的服务器是真正的服务器名称,两者可以相同或不同。如下图中,我们可以使用myserver来代替真正的服务器名称sql2kcn-02,并且使用网络库 Named Pipes。别名的设置与使用HOSTS文件有相似之处。通过以上几个方面的检查,错误 1 发生的原因基本上可以被排除。下面我们再详细描述如何来解决错误 2。  当用户尝试在查询分析器里面使用sa来连接SQL Server,或者在企业管理器里面使用sa来新建一个SQL Server注册时,经常会遇到如图 2 所示的错误信息。该错误产生的原因是由于SQL Server使用了"仅 Windows"的身份验证方式,因此用户无法使用SQL Server的登录帐户(如 sa )进行连接。解决方法如下所示:  1、 在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQL Server;  2、 展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再选择"安全性"选项卡;  3、 在"身份验证"下,选择"SQL Server和 Windows "。  4、 重新启动SQL Server服务。  在以上解决方法中,如果在第 1 步中使用"使用 Windows 身份验证"连接 SQL Server 失败,那么我们将遇到一个两难的境地:首先,服务器只允许了 Windows 的身份验证;其次,即使使用了 Windows 身份验证仍然无法连接上服务器。这种情形被形象地称之为"自己把自己锁在了门外",因为无论用何种方式,用户均无法使用进行连接。实际上,我们可以通过修改一个注册表键值来将身份验证方式改为 SQL Server 和 Windows 混合验证,步骤如下所示:  1、点击"开始"-"运行",输入regedit,回车进入注册表编辑器;  2、依次展开注册表项,浏览到以下注册表键:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer]  3、在屏幕右方找到名称"LoginMode",双击编辑双字节值;  4、将原值从1改为2,点击"确定";  5、关闭注册表编辑器;  6、重新启动SQL Server服务。  此时,用户可以成功地使用sa在企业管理器中新建SQL Server注册,但是仍然无法使用Windows身份验证模式来连接SQL Server。这是因为在 SQL Server 中有两个缺省的登录帐户:BUILTIN\Administrators 以及 <机器名>\Administrator 被删除。要恢复这两个帐户,可以使用以下的方法:  1、打开企业管理器,展开服务器组,然后展开服务器;  2、展开"安全性",右击"登录",然后单击"新建登录";  3、在"名称"框中,输入 BUILTIN\Administrators;  4、在"服务器角色"选项卡中,选择"System Administrators" ;  5、点击"确定"退出;  6、使用同样方法添加 <机器名>\Administrator 登录。  以下注册表键HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode  的值决定了SQL Server将采取何种身份验证模式。该值为1,表示使用Windows 身份验证模式;该值为2,表示使用混合模式(Windows 身份验证和 SQL Server 身份验证)。  看完如何解决前两个错误的方法之后,让我们来看一下如图 3 所示的第三个错误。  如果遇到第三个错误,一般而言表示客户端已经找到了这台服务器,并且可以进行连接,不过是由于连接的时间大于允许的时间而导致出错。这种情况一般会发生在当用户在Internet上运行企业管理器来注册另外一台同样在Internet上的服务器,并且是慢速连接时,有可能会导致以上的超时错误。有些情况下,由于局域网的网络问题,也会导致这样的错误。  要解决这样的错误,可以修改客户端的连接超时设置。默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是 4 秒,而查询分析器是 15 秒(这也是为什么在企业管理器里发生错误的可能性比较大的原因)。具体步骤为:  1、在企业管理器中,选择菜单上的"工具",再选择"选项";  2、在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡;  3、在"连接设置"下的"登录超时(秒)"右边的框中输入一个比较大的数字,如 20。  查询分析器中也可以在同样位置进行设置。二、应用程序连接失败  以上的三种错误信息都是发生在 SQL Server 自带的客户端工具中,在应用程序中我们也会遇到类似的错误信息,例如:Microsoft OLE DB Provider for SQL Server (0x80004005)[DBNETLIB][ConnectionOpen (Connect()).]Specified SQL server not found.Microsoft OLE DB Provider for SQL Server (0x80004005)用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'.[Microsoft][ODBC SQL Server Driver]超时已过期.本文转摘自『IT学习者』 http://www.itlearner.com/article/2006/2756.shtml

回答3:

strSQLServer="(local)"'125.65.112.28 数据库地址
strSQLUser="sa" '数据库登录的账号
strSQLPassword="123456" '登录密码
strSQLDataBase="n2008" '数据库名称
最关键就是以上的代码了!填错一个就无法连接成功啊!仔细检查一下的信息

回答4:

同意楼上的 要检查清楚那些参数