SQL Server 不存在或访问被拒绝(转)
在数据库管理系统SQL Server的运用过程中,连接失败的问题无疑是最常遇到的挑战之一。针对这两种主要的连接方式——通过SQL Server自带的客户端工具,如企业管理器、查询分析器、事务探查器等,或是通过用户自行开发的客户端程序如ASP脚本、VB程序等并利用ODBC或OLE DB连接SQL Server,我们将深入如何解决连接失败的问题。
我们重点讨论最常见的错误:“SQL Server不存在或访问被拒绝”。这个错误可能源于多种原因,包括但不限于网络连接问题、SQL Server服务器问题、服务器端网络配置问题以及客户端网络配置问题。解决这个问题需要我们逐一排查各种可能性。
我们需要检查网络连接。通过ping服务器IP地址和服务器名称,我们可以初步判断物理连接和名字是否有问题。如果这两步都没问题,我们可以使用tel命令检查SQL Server服务器的工作状态。如果服务器正常工作并且正在监听默认的1433端口,那么我们需要进一步检查服务器和客户端的网络配置。
在服务器端,我们需要检查是否启用了命名管道和TCP/IP协议,这可以通过SQL Server自带的服务器网络使用工具来完成。同样地,在客户端,我们也需要进行类似的检查。这个步骤非常重要,因为客户端必须使用与服务器相同的协议和端口才能成功连接。
完成这些检查后,大部分“SQL Server不存在或访问被拒绝”的错误都可以被排除。
接下来,我们讨论另一种常见的错误:“无法连接到服务器,用户x登陆失败”。这个错误通常是因为SQL Server使用了“仅 Windows”的身份验证方式,用户无法使用SQL Server的登录帐户(如sa)进行连接。解决这个问题的方法通常涉及到更改身份验证方式或者创建新的用户帐户并赋予相应的权限。
在解决SQL Server连接问题的旅程中,首先需要在服务器端启动企业管理器,选择使用Windows身份验证来连接SQL Server。展开SQL Server组,右键点击服务器名称,深入至属性界面,再安全性的奥秘。在身份验证部分,需要同时启用SQL Server和Windows身份验证,以混合模式确保连接的安全性。完成这些步骤后,需要重新启动SQL Server服务,以确保更改生效。
如果在第一步使用Windows身份验证连接SQL Server时遇到障碍,那么我们可以转向修改注册表。通过运行regedit进入注册表编辑器,然后按照路径展开注册表项,找到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer]。在右侧窗格中,找到LoginMode并双击编辑其双字节值。将原值1更改为2后,关闭注册表编辑器并重启SQL Server服务。
即使完成了上述步骤,你可能会发现仍然无法使用sa在企业管理器中新建SQL Server注册。这可能是因为SQL Server中两个默认登录账户:BUILTIN\Administrators和<机器名>\Administrator被删除。为了恢复这些账户,我们需要再次打开企业管理器,在安全性的部分右击登录并新建登录。在名称框中输入BUILTIN\Administrators,选择System Administrators在服务器角色选项卡中,然后点击确定退出。接着用同样的方法添加<机器名>\Administrator登录。
值得注意的是,注册表中LoginMode的值决定了SQL Server将采取的身份验证模式。值为1时,表示使用Windows身份验证模式;值为2时,表示使用混合模式(Windows身份验证和SQL Server身份验证)。
如果在连接过程中遇到超时错误,这通常意味着客户端已经找到了服务器并且尝试连接,但由于连接时间过长而超过了允许的时间限制。这种情况通常发生在网络速度较慢的情况下或者在局域网中存在网络问题。为了解决这个问题,我们可以调整客户端的连接超时设置。在企业管理器中,通过工具选项进入高级设置,在连接设置中将登录超时设置为一个较大的数值。同样地,在查询分析器中也可以通过工具选项中的连接设置来调整超时时间。
通过这些详细的步骤和说明,相信你可以成功解决SQL Server连接问题,确保数据库的安全和稳定运行。二、SQL Server应用程序连接失败的与对策
在SQL Server的使用过程中,无论是自带的客户端工具还是用户开发的应用程序,都可能遇到连接失败的错误信息。这些错误信息的背后隐藏着多种原因,但解决之道往往可以从以下几个方面入手。
当您收到类似于以下的错误信息时:
Microsoft OLE DB Provider for SQL Server (0x80005)[DBNETLIB][ConnectionOpen (Connect()).]Specified SQL server not found. Microsoft OLE DB Provider for SQL Server (0x80005) 用户 'sa' 登录失败。原因: 未与信任SQL Server连接相关联。
这通常意味着您的应用程序未能成功连接到SQL Server。这时,您可以尝试以下几种解决方案:
检查您的服务器名称是否正确。确保您在连接字符串中指定的服务器名称与您的SQL Server实例名称相匹配。如果您的服务器名称有误,或者SQL Server不在本地主机上运行,都会导致连接失败。
检查您的身份验证方式是否正确。SQL Server支持多种身份验证方式,包括Windows身份验证和混合模式(Windows身份验证和SQL Server身份验证)。确保您的应用程序使用正确的身份验证方式,并提供正确的凭据。
如果遇到连接超时的错误,例如Microsoft OLE DB Provider for ODBC Drivers错误 '80005'.[Microsoft][ODBC SQL Server Driver]超时已过期,您可以在程序中修改Connection对象的超时设置。例如:
Set Conn = Server.CreateObject("ADODB.Connection") DSNtest="DRIVER={SQL Server};SERVER=ServerName;UID=USER;PWD=password;DATABASE=mydatabase" Conn.Properties("Connect Timeout") = 15 '以秒为单位Conn.open DSNtest
同样地,如果遇到查询超时的错误,您可以修改Recordset对象的超时设置。例如:
Dim conn As New ADODB.ConnectionDim rs As ADODB.Recordset ... cmd1 = txtQuery.Text Set rs = New ADODB.Recordset rs.Properties("Command Time Out") = 300 '同样以秒为单位,如果设置为 0 表示无限制 rs.Open cmd1, rs.MoveFirst ...
针对SQL Server连接失败的错误,我们需要深入理解其背后的原因,结合具体的错误信息,从服务器名称、身份验证方式、超时设置等方面入手,寻找解决方案。相信读者们对SQL Server的连接工作原理、身份验证方式以及应用程序开发会有更为全面和深入的了解。在遇到类似的连接问题时,能够迅速定位问题并找到解决办法。
长沙网站设计
- SQL Server 不存在或访问被拒绝(转)
- CI框架常用函数封装实例
- 基于Bootstrap的标签页组件及bootstrap-tab使用说明
- three.js实现3D影院的原理的代码分析
- 微信小程序 支付功能开发错误总结
- Mysql 5.7.17安装后登录mysql的教程
- mysql之explain使用详解(分析索引)
- 详解asp.net core 依赖注入
- 读取数据库的数据并整合成3D饼图在jsp中显示详解
- 值得推荐的Idea十几大优秀插件(小结)
- layui实现文件或图片上传记录
- Flex实现的上传摄像头拍照并将UI保存为图片
- 使用Vue-Router 2实现路由功能实例详解
- Web前端框架Angular4.0.0 正式版发布
- jquery实现图片放大镜功能
- React入门教程之Hello World以及环境搭建详解