SQL Server连接失败错误及解决
- 格式:doc
- 大小:180.00 KB
- 文档页数:9
刚刚安装的数据库系统,按照默认安装的话,很可能在进行远程连接时报错,通常是错误:"在连接到 SQL Server 2005 (或2008)时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。
(provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) "搜MSDN,上面有一片机器翻译的文章,是在让人难以明白,现在总结如下:明白了SQL Server 是个网络数据库就可迎刃而解了,简单的分为下面的集中情况。
1. 数据库引擎没有启动。
有两种启动方式:(1)开始->程序->Microsoft SQL Server 2005->SQL Server 2005外围应用配置器,在打开的界面单击"服务的连接的外围应用配置器",在打开的界面中找到Database Engine,单击"服务",在右侧查看是否已启动,如果没有启动可单击"启动",并确保"启动类型"为自动,不要为手动,否则下次开机时又要手动启动;(2)可打开:开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server Configuration Manager,选中SQL Server 2005服务中SQL Server(MSSQLSERVER) ,并单击工具栏中的"启动服务"按钮把服务状态改为启动;(sql server 2008使用此方法,开始->程序->Microsoft SQL Server 2008 R2->配置工具->SQL Server配重管理器,将MSSQLSERVER协议中的VIA禁用,再选中SQL Server服务中SQL Server(MSSQLSERVER) ,并单击工具栏中的"启动服务"按钮把服务状态改为启动)使用上面两种方式时,有时候在启动的时候可能会出现错误,不能启动,这时就要查看"SQL Server 2005配置管理器"中的SQL Server 2005网络配置->MSSQLSERVER协议中的VIA是否已启用,如果已启用,则把它禁止.然后再执行上述一种方式操作就可以了.2. 是否已经允许远程连接。
SQL codeMicrosoft][ODBC SQL Server Driver][TCPIP Sockets]一般性网络错误。
请检查网络文档SQL Server连接中的四个最常见错误:一. "SQL Server 不存在或访问被拒绝 "这个是最复杂的,错误发生的原因比较多,需要检查的方面也比较多.一般说来,有以下几种可能性:1,SQL Server名称或IP地址拼写有误2,服务器端网络配置有误3,客户端网络配置有误要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因. ============= 首先,检查网络物理连接 =============ping <服务器IP地址/服务器名称>如果 ping <服务器IP地址> 不成功,说明物理连接有问题,这时候要检查硬件设备,如网卡,HUB,路由器等.还有一种可能是由于客户端和服务器之间安装有防火墙软件造成的,比如 ISA Server.防火墙软件可能会屏蔽对 ping,telnet 等的响应因此在检查连接问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口.如果ping <服务器IP地址> 成功而,ping <服务器名称> 失败则说明名字解析有问题,这时候要检查 DNS 服务是否正常.有时候客户端和服务器不在同一个局域网里面,这时候很可能无法直接使用服务器名称来标识该服务器,这时候我们可以使用HOSTS文件来进行名字解析,具体的方法是:1.使用记事本打开HOSTS文件(一般情况下位于C:\WINNT\system32\drivers\e tc).添加一条IP地址与服务器名称的对应记录,如:172.168.10.24 myserver2.或在 SQL Server 的客户端网络实用工具里面进行配置,后面会有详细说明.============= 其次,使用 telnet 命令检查SQL Server服务器工作状态 =============telnet <服务器IP地址> 1433如果命令执行成功,可以看到屏幕一闪之后光标在左上角不停闪动,这说明 SQ L Server 服务器工作正常,并且正在监听1433端口的 TCP/IP 连接如果命令返回 "无法打开连接 "的错误信息,则说明服务器端没有启动 SQL Server 服务,也可能服务器端没启用 TCP/IP 协议,或者服务器端没有在 SQL Serve r 默认的端口1433上监听.=============接着,我们要到服务器上检查服务器端的网络配置,检查是否启用了命名管道.是否启用了 TCP/IP 协议等等 =============可以利用 SQL Server 自带的服务器网络使用工具来进行检查.点击:程序 -- Microsoft SQL Server -- 服务器网络使用工具打开该工具后,在 "常规 "中可以看到服务器启用了哪些协议.一般而言,我们启用命名管道以及 TCP/IP 协议.点中 TCP/IP 协议,选择 "属性 ",我们可以来检查 SQK Server 服务默认端口的设置一般而言,我们使用 SQL Server 默认的1433端口.如果选中 "隐藏服务器 ",则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接.============= 接下来我们要到客户端检查客户端的网络配置 ========== ===我们同样可以利用 SQL Server 自带的客户端网络使用工具来进行检查,所不同的是这次是在客户端来运行这个工具.点击:程序 -- Microsoft SQL Server -- 客户端网络使用工具打开该工具后,在 "常规 "项中,可以看到客户端启用了哪些协议.一般而言,我们同样需要启用命名管道以及 TCP/IP 协议.点击 TCP/IP 协议,选择 "属性 ",可以检查客户端默认连接端口的设置,该端口必须与服务器一致.单击 "别名 "选项卡,还可以为服务器配置别名.服务器的别名是用来连接的名称,连接参数中的服务器是真正的服务器名称,两者可以相同或不同.别名的设置与使用HOSTS文件有相似之处.通过以上几个方面的检查,基本上可以排除第一种错误.-----------------------------------------二. "无法连接到服务器,用户xxx登陆失败 "该错误产生的原因是由于SQL Server使用了 "仅 Windows "的身份验证方式,因此用户无法使用SQL Server的登录帐户(如 sa )进行连接.解决方法如下所示:1.在服务器端使用企业管理器,并且选择 "使用 Windows 身份验证 "连接上 SQL Server操作步骤:在企业管理器中--右键你的服务器实例(就是那个有绿色图标的)--编辑SQL Server注册属性--选择 "使用windows身份验证 "--选择 "使用SQL Server身份验证 "--登录名输入:sa,密码输入sa的密码--确定2.设置允许SQL Server身份登录操作步骤:在企业管理器中--展开 "SQL Server组 ",鼠标右键点击SQL Server服务器的名称--选择 "属性 "--再选择 "安全性 "选项卡--在 "身份验证 "下,选择 "SQL Server和 Windows ".--确定,并重新启动SQL Server服务.在以上解决方法中,如果在第 1 步中使用 "使用 Windows 身份验证 "连接 SQL Server 失败,那就通过修改注册表来解决此问题: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\Administrators4.在 "服务器角色 "选项卡中,选择 "System Administrators "5.点击 "确定 "退出6.使用同样方法添加 <机器名> \Administrator 登录.说明:以下注册表键:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMo de的值决定了SQL Server将采取何种身份验证模式.1.表示使用 "Windows 身份验证 "模式2.表示使用混合模式(Windows 身份验证和 SQL Server 身份验证). -----------------------------------------三.提示连接超时如果遇到第三个错误,一般而言表示客户端已经找到了这台服务器,并且可以进行连接,不过是由于连接的时间大于允许的时间而导致出错.这种情况一般会发生在当用户在Internet上运行企业管理器来注册另外一台同样在Internet上的服务器,并且是慢速连接时,有可能会导致以上的超时错误.有些情况下,由于局域网的网络问题,也会导致这样的错误.要解决这样的错误,可以修改客户端的连接超时设置.默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是 4 秒,而查询分析器是 15 秒(这也是为什么在企业管理器里发生错误的可能性比较大的原因).具体步骤为:企业管理器中的设置:1.在企业管理器中,选择菜单上的 "工具 ",再选择 "选项 "2.在弹出的 "SQL Server企业管理器属性 "窗口中,点击 "高级 "选项卡3.在 "连接设置 "下的 "登录超时(秒) "右边的框中输入一个比较大的数字,如 20.查询分析器中的设置:工具 -- 选项 -- 连接 -- 将登录超时设置为一个较大的数字---------------------------------------------四.大部分机都用Tcp/ip才能成功,有次我发现用Named Pipes才可以?这是因为在WINDOWS 2000以后的操作系统中,MS为解决SQL SERVER的安全问题将TCP/IP配置为SQLSERVER的默认连接协议,你可以在CLIENT NETWORK UTILITY中看到TCP/IP和NAME PIPE的顺序。
解决sql账户sa登录失败的方法-回复解决SQL 账户sa 登录失败的方法引言:在SQL Server 中,系统管理员(sa)账户是一个具有最高权限的账户,可以访问和管理数据库服务器中的所有资源。
然而,有时我们可能会遇到sa 登录失败的问题,这可能导致无法正常访问和管理数据库。
本文将逐步介绍如何解决这个问题,以确保sa 账户登录成功。
第一步:确认问题首先,我们需要确认sa 账户登录失败的原因。
在许多情况下,这是由于以下几个常见原因之一所导致的:1. 忘记sa 密码:如果您已经使用sa 账户很长时间,可能会忘记密码。
在这种情况下,您需要重置sa 的密码。
2. sa 账户被禁用:有时,出于安全原因,管理员可能会禁用sa 账户。
您需要确保sa 账户处于启用状态。
3. SQL Server 服务未启动:如果SQL Server 服务未启动,则无法正常登录sa 账户。
您需要确保SQL Server 服务正在运行。
第二步:重置sa 密码如果您忘记了sa 账户的密码,您需要重置它。
以下是一些方法可帮助您重置sa 密码:1. 使用SQL Server Management Studio(SSMS):如果您有访问SQL Server 的管理工具(如SSMS),您可以使用该工具来重置sa 密码。
打开SSMS,选择要连接的服务器,右键单击服务器名称,选择“属性”。
在“常规”选项卡上,找到“安全性”选项,然后选择“SQL Server 和Windows 验证模式”。
点击确定后,回到对象资源管理器窗口,依次选择服务器-> 安全性-> 登录。
右键单击sa 账户,选择“属性”。
在“一般”选项卡上,可以找到“密码”框,输入新密码并确认。
保存更改后,使用新密码进行sa 登录。
2. 使用Transact-SQL(T-SQL):如果您无法访问SSMS,您可以使用T-SQL 来重置sa 密码。
打开SQL Server Management Studio 或任何T-SQL 编辑器,连接到SQL Server 实例。
SQLserver2000,打开服务管理器时出现错误:〔Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server不存在或访问被拒绝"[I](一台机器即作服务器又作客户机,软件连接中出现:[DBNETLIB][ConnectionOpen(connect()).]SQL Server 不存在或拒绝访问。
现从网上查阅问题解决办法有如下几种:(A)1:你如果是独立上网的请把21端口打开.局域网把1433端口打开就可以了.2;关闭防火墙!(B)把数据库连接的SqlLocalName="(local)" 的(local) 改成IP试试。
可以把(local) 该成127.0.0.1,或者改成外网IP (C)打开服务,暂停全文检索及sql server服务开启sql server服务再开启全文检索服务(D)SQL Server 右键属性==>安全选项中的“所有权链接:”“允许跨数据库所有权链接”前面的勾要勾上(此操作需要重起SQL Server)。
[II]1、先保证ping通蔻网网址之家2、在dos下写入telnet ip 1433不会报错3、用ip连如企业管理器:企业管理器-->右键SQlserver组-->新建sqlserver注册-->下一步-->写入远程实例名(IP,机器名)-->下一步-->选Sqlserver登陆-->下一步-->写入登陆名与密码(sa,pass)-->下一步-->下一步-->完成4、如果还不行:sqlserver服务器-->开始菜单-->SQLserver-->服务器网络实用工具-->启用WinSock代理-->代理地址:(sqlserver服务器IP)-->代理端口-->1433-->OK了5、如果还不行:sqlserver客户端-->开始菜单-->SQLserver-->客户端网络实用工具-->别名-->添加-->写入别名如"大力"-->"网络库"选tcp/ip-->服务器名称写入远程ip或实例名-->OK了[III]选中Microsoft SQL Servers-->工具栏,工具-->选项-->高级-->查询超时-->改为0別人告訴我在c:\winnt\system32\driver\etc\下的hosts文件中加入ip computername就可以了,我試了也的確可以了,我百思不得其改,為什麼要那樣呢,sqlserver7.0都不要那樣呀,為什麼sqlserver2000要這樣呀效果就相当于如下操作:sqlserver客户端-->开始菜单-->SQLserver-->客户端网络实用工具-->别名-->添加-->写入别名如"大力"-->"网络库"选tcp/ip-->服务器名称写入远程ip或实例名-->OK了[IV]摘要:这篇文章主要针对Win2003系统安装SQL Sever2000后1433端口未开放,如何打开1433端口的解决方法。
SQLserver2000,打开服务管理器时出现错误:〔Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server不存在或访问被拒绝"[I](一台机器即作服务器又作客户机,软件连接中出现:[DBNETLIB][ConnectionOpen(connect()).]SQL Server 不存在或拒绝访问。
现从网上查阅问题解决办法有如下几种:(A)1:你如果是独立上网的请把21端口打开.局域网把1433端口打开就可以了.2;关闭防火墙!(B)把数据库连接的SqlLocalName="(local)" 的(local) 改成IP试试。
可以把(local) 该成127.0.0.1,或者改成外网IP(C)打开服务,暂停全文检索及sql server服务开启sql server服务再开启全文检索服务(D)SQL Server 右键属性==>安全选项中的“所有权链接:”“允许跨数据库所有权链接”前面的勾要勾上(此操作需要重起SQL Server)。
[II]1、先保证ping通蔻网网址之家2、在dos下写入telnet ip 1433不会报错3、用ip连如企业管理器:企业管理器-->右键SQlserver组-->新建sqlserver注册-->下一步-->写入远程实例名(IP,机器名)-->下一步-->选Sqlserver登陆-->下一步-->写入登陆名与密码(sa,pass)-->下一步-->下一步-->完成4、如果还不行:sqlserver服务器-->开始菜单-->SQLserver-->服务器网络实用工具-->启用WinSock代理-->代理地址:(sqlserver服务器IP)-->代理端口-->1433-->OK了5、如果还不行:sqlserver客户端-->开始菜单-->SQLserver-->客户端网络实用工具-->别名-->添加-->写入别名如"大力"-->"网络库"选tcp/ip-->服务器名称写入远程ip或实例名-->OK了[III]选中Microsoft SQL Servers-->工具栏,工具-->选项-->高级-->查询超时-->改为0別人告訴我在c:\winnt\system32\driver\etc\下的hosts文件中加入ip computername就可以了,我試了也的確可以了,我百思不得其改,為什麼要那樣呢,sqlserver7.0都不要那樣呀,為什麼sqlserver2000要這樣呀效果就相当于如下操作:sqlserver客户端-->开始菜单-->SQLserver-->客户端网络实用工具-->别名-->添加-->写入别名如"大力"-->"网络库"选tcp/ip-->服务器名称写入远程ip或实例名-->OK了[IV]摘要:这篇文章主要针对Win2003系统安装SQL Sever2000后1433端口未开放,如何打开1433端口的解决方法。
解决此问题有两种方法:第一种方法1. 先停止服务器服务,双击主机屏幕右下角的:的图标,弹出界面选停止,再弹出的选项选择是。
2. 解压data压缩包(没有的可以咨询售后服务人员),复制文件夹里所有文件,然后进入D 盘,D:\Program Files'Microsoft SQLServer\MSSQL\Data这个路径,粘贴刚才复制的所有文件,提示替换时选全部。
3. 重新点击'矗L这个图标,弹出界面选,开始/继续,等图标变成绿色三角即可关掉。
重新打开管理系统即可正常使用。
第二种方法第一步:首先打开企业管理器,位置:服务器这台机器(也就是主机)开始-程序-Microsoft SQL Server-企业管理器L X Microsoft Office__一-——;------------- - ———一—Microsolt SQL Server F逮訥分析器馥导入和导3加亦服务音理器i服务器网踏实用工异臥?客户端网给实用工^ ”呈联业书s企业諺器—陳事1牛採查器奇圧吧中配置SQL XML立持Microsoft SQL Server 一版本切换依次点开-控制台根目录-Microsoft SQL Server- Microsoft SQL-(local)(Windows NT)-安全性-登录文儆F)规炸(A] M(V)工HE «D(W)和助{H)• ♦I 齒IHl X 0 I B 曲I * †I 4 翡0 8? N揑割台tH目录J£|] Microsoft SQL Servers†冃SQL Server 詛J I命(local) (V^indow5 NT)A □歡JS蛊匚I数拓菠洒雰B 口更_ /卜口曩制亠/ -□妄葩/LC够*处區务器第色J3远®惑器[> OS^fiESMeta Data Seirvi 匚卒尋录2个项目服务器访问耘g!癬越BUILTI N\Ad mini strator5Windows ...许可master许可master 遍i<rosoft SQL Servers,,-SQL Server local] (Windows IMTN,宝全性\登录然后选中右面出现的sa项目,双击,弹出界面第1步数据库选项选成myhis,第2步密码选项删除掉密码,然后点保存弹出选项不填写,直接点确定。
连接字符串错误及Sql2005的有关设置
1、出现的问题:
当我们进行数据库连接时,当调用Open方法时失败。
如下:
2、出现的原因:
Sqlserver没有启用Sql Server身份认证,以及sa账户设置有误。
Sqlserver默认是没有启用Sql Server身份认证的,此时只能通过Windows身份认证。
同时,默认状态下,sa账户具有较高的权限,一般不能进行远程登录。
3、解决方式;
(1)启用Sql Server身份认证
首先以Windows身份认证从服务器上登录:
在数据库服务器上点击右键,选择属性
在服务器“安全性”中进行“服务器身份验证”的修改,修改为Sql和windows身份验证模式
如果希望使用新的用户登录名:选择新建登录名,
在新建登录名对话框中完成相应设置:
(2)启用sa登录
如果希望启用sa:在sa上点击右键选择属性
在登录属性框中作如下修改:。
SQL Server连接中的三个最常见错误:一. "SQL Server 不存在或访问被拒绝"这个是最复杂的,错误发生的原因比较多,需要检查的方面也比较多.一般说来,有以下几种可能性:1,SQL Server名称或IP地址拼写有误2,服务器端网络配置有误3,客户端网络配置有误要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因.============= 首先,检查网络物理连接=============ping <服务器IP地址/服务器名称>如果ping <服务器IP地址> 不成功,说明物理连接有问题,这时候要检查硬件设备,如网卡,HUB,路由器等.还有一种可能是由于客户端和服务器之间安装有防火墙软件造成的,比如ISA Server.防火墙软件可能会屏蔽对ping,telnet 等的响应因此在检查连接问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口.如果ping <服务器IP地址> 成功而,ping <服务器名称> 失败则说明名字解析有问题,这时候要检查DNS 服务是否正常.有时候客户端和服务器不在同一个局域网里面,这时候很可能无法直接使用服务器名称来标识该服务器,这时候我们可以使用HOSTS文件来进行名字解析,具体的方法是:1.使用记事本打开HOSTS文件(一般情况下位于C:\WINNT\system32\drivers\etc). 添加一条IP地址与服务器名称的对应记录,如:172.168.10.24 myserver2.或在SQL Server 的客户端网络实用工具里面进行配置,后面会有详细说明.============= 其次,使用telnet 命令检查SQL Server服务器工作状态=============telnet <服务器IP地址> 1433如果命令执行成功,可以看到屏幕一闪之后光标在左上角不停闪动,这说明SQL Server 服务器工作正常,并且正在监听1433端口的TCP/IP 连接如果命令返回"无法打开连接"的错误信息,则说明服务器端没有启动SQL Server 服务,也可能服务器端没启用TCP/IP 协议,或者服务器端没有在SQL Server 默认的端口1433上监听.=============接着,我们要到服务器上检查服务器端的网络配置,检查是否启用了命名管道.是否启用了TCP/IP 协议等等=============可以利用SQL Server 自带的服务器网络使用工具来进行检查.点击:程序-- Microsoft SQL Server -- 服务器网络使用工具打开该工具后,在"常规"中可以看到服务器启用了哪些协议.一般而言,我们启用命名管道以及TCP/IP 协议.点中TCP/IP 协议,选择"属性",我们可以来检查SQK Server 服务默认端口的设置一般而言,我们使用SQL Server 默认的1433端口.如果选中"隐藏服务器",则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接.============= 接下来我们要到客户端检查客户端的网络配置=============我们同样可以利用SQL Server 自带的客户端网络使用工具来进行检查,所不同的是这次是在客户端来运行这个工具.点击:程序-- Microsoft SQL Server -- 客户端网络使用工具打开该工具后,在"常规"项中,可以看到客户端启用了哪些协议.一般而言,我们同样需要启用命名管道以及TCP/IP 协议.点击TCP/IP 协议,选择"属性",可以检查客户端默认连接端口的设置,该端口必须与服务器一致.单击"别名"选项卡,还可以为服务器配置别名.服务器的别名是用来连接的名称, 连接参数中的服务器是真正的服务器名称,两者可以相同或不同.别名的设置与使用HOSTS文件有相似之处.sqlserver服务器--> 开始菜单--> SQLserver--> 服务器网络实用工具--> 启用WinSock代理--> 代理地址:(sqlserver服务器IP)--> 代理端口--> 1433--> OK 了sqlserver客户端--> 开始菜单--> SQLserver--> 客户端网络实用工具--> 别名--> 添加--> 写入别名如"大力"--> "网络库"选tcp/ip--> 服务器名称写入远程ip或实例名--> OK了通过以上几个方面的检查,基本上可以排除第一种错误.-----------------------------------------------------------------------------二. "无法连接到服务器,用户xxx登陆失败"该错误产生的原因是由于SQL Server使用了"仅Windows "的身份验证方式, 因此用户无法使用SQL Server的登录帐户(如sa )进行连接.解决方法如下所示:1.在服务器端使用企业管理器,并且选择"使用Windows 身份验证"连接上SQL Server2.展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再选择"安全性"选项卡3.在"身份验证"下,选择"SQL Server和Windows ".4.重新启动SQL Server服务.在以上解决方法中,如果在第 1 步中使用"使用Windows 身份验证"连接SQL Server 失败,那就通过修改注册表来解决此问题:1.点击"开始"- "运行",输入regedit,回车进入注册表编辑器2.依次展开注册表项,浏览到以下注册表键:[HKEY_LOCAL_MACHINE\SOFTW ARE\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\Administrators4.在"服务器角色"选项卡中,选择"System Administrators "5.点击"确定"退出6.使用同样方法添加<机器名> \Administrator 登录.说明:以下注册表键:HKEY_LOCAL_MACHINE\SOFTW ARE\Microsoft\MSSQLServer\MSSQLServer\Log inMode的值决定了SQL Server将采取何种身份验证模式.1.表示使用"Windows 身份验证"模式2.表示使用混合模式(Windows 身份验证和SQL Server 身份验证).-----------------------------------------------------------------------------三.提示连接超时如果遇到第三个错误,一般而言表示客户端已经找到了这台服务器,并且可以进行连接,不过是由于连接的时间大于允许的时间而导致出错.这种情况一般会发生在当用户在Internet上运行企业管理器来注册另外一台同样在Internet上的服务器,并且是慢速连接时,有可能会导致以上的超时错误.有些情况下,由于局域网的网络问题,也会导致这样的错误.要解决这样的错误,可以修改客户端的连接超时设置.默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是 4 秒, 而查询分析器是15 秒(这也是为什么在企业管理器里发生错误的可能性比较大的原因).具体步骤为:企业管理器中的设置:1.在企业管理器中,选择菜单上的"工具",再选择"选项"2.在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡3.在"连接设置"下的"登录超时(秒)"右边的框中输入一个比较大的数字,如20.查询分析器中的设置:工具-- 选项-- 连接-- 将登录超时设置为一个较大的数字================================================================ ============总结:1.先保证ping通(有防火墙的先关闭防火墙)2.在命令提示符下执行:telnet <服务器ip地址> 1433 不会报错3.连接时使用用ip连接企业管理器4.如果不行SQL Server服务器--开始--程序--Microsoft SQL Server--服务器网络实用工具--启用WinSock代理--代理地址:(sqlserver服务器IP)--代理端口--1433---确定5.如果还不行,在客户端装个SQL Server客户端配置一下:开始--程序--Microsoft SQL Server--客户端网络实用工具--别名--添加--网络库选择"tcp/ip "--服务器别名输入SQL服务器名--连接参数--服务器名称中输入SQL服务器ip地址--如果你修改了SQL的端口,取消选择"动态决定端口",并输入对应的端口号--检查是否安装了补丁,查询分析器中执行下面的语句:select @@version。
阿⾥云服务器端安装SQLSERVER失败,提⽰Windows更新错误代码0x80244022参照如下步骤打开Windows Update组策略,进⾏查看和验证。
1. 打开运⾏。
2. 输⼊ gpedit.msc。
3. 在本地组策略编辑器中,依次打开计算机配置 > 管理模板 > Windows 组件 > Windows Update。
注:修改图中框选的任何⼀条组策略后,您需要以管理员⾝份打开CMD,并运⾏gpupdate /force命令使修改项⽣效。
4. 配置⾃动更新双击配置⾃动更新打开选项卡。
默认选项为已启⽤和 2-通知下载并通知安装。
选择该选项后,您会收到通知,然后可以⼿动安装需要的更新。
您可以根据需要,修改为如下配置。
如果您希望⼿动管理更新的配置,请选择 5-允许本地管理员选择设置或者未配置。
如果您选择已禁⽤,在需要Windows Update上的任何可⽤更新时,必须⾃⾏下载并⼿动安装该更新。
指定 Intranet Microsoft 更新服务位置双击指定 Intranet Microsoft 更新服务位置打开选项卡。
默认选项为已启⽤。
选择该选项后,您可以设置相应的更新服务器和统计服务器。
完成设置后,您可以使⽤telnet命令进⾏测试,如果能正常访问对应服务器的80端⼝,说明实例与更新服务器的连接正常。
对于经典⽹络的ECS,默认服务器如下。
更新服务器:统计服务器:对于VPC⽹络的ECS,默认服务器如下。
更新服务器:统计服务器:允许⾃动更新⽴即安装双击允许⾃动更新⽴即安装打开选项卡。
默认选项为已禁⽤。
选择该选项后,系统不会⾃动安装更新。
您可以选择已启⽤允许系统⾃动安装。
改⽤微软官⽅的Internet Windows Update服务器由于需要检查收到的微软Windows安全更新,内部WSUS更新服务器的安全更新相对微软官⽅可能会有⼀定延迟。
如果⽆法接受该延迟,可参考如下两种⽅式来使⽤微软官⽅的Internet Windows Update服务器。
SQL Server连接失败错误及解决 在使用 SQL Server 的过程中,用户遇到的最多的问题莫过于连接失败了。一般而言,有以下两种连接 SQL Server 的方式,一是利用 SQL Server 自带的客户端工具,如企业管理器、查询分析器、事务探查器等;二是利用用户自己开发的客户端程序,如ASP 脚本、VB程序等,客户端程序中又是利用 ODBC 或者 OLE DB 等连接 SQL Server。下面,我们将就这两种连接方式,具体谈谈如何来解决连接失败的问题。 一、客户端工具连接失败 在使用 SQL Server 自带的客户端工具(以企业管理器为例)连接 SQL Server时,最常见的错误有如下一些: 1、SQL Server 不存在或访问被拒绝 ConnectionOpen (Connect())
2、用户'sa'登录失败。原因:未与信任 SQL Server 连接相关联。 3、超时已过期。 下面我们依次介绍如何来解决这三个最常见的连接错误。 第一个错误"SQL Server 不存在或访问被拒绝"通常是最复杂的,错误发生的原因比较多,需要检查的方面也比较多。一般说来,有以下几种可能性: 1、SQL Server名称或IP地址拼写有误; 2、服务器端网络配置有误; 3、客户端网络配置有误。 要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因。 首先,检查网络物理连接: ping 或者 ping 如果 ping 失败,说明物理连接有问题,这时候要检查硬件设备,如网卡、HUB、路由器等。还有一种可能是由于客户端和服务器之间安装有防火墙软件造成的,比如 ISA Server。防火墙软件可能会屏蔽对 ping、telnet 等的响应,因此在检查连接问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口。 如果ping 成功而 ping 失败,则说明名字解析有问题,这时候要检查 DNS 服务是否正常。有时候客户端和服务器不在同一个局域网里面,这时候很可能无法直接使用服务器名称来标识该服务器,这时候我们可以使用HOSTS文件来进行名字解析,具体的方法是: 1、使用记事本打开HOSTS文件(一般情况下位于C:\WINNT\system32\drivers\etc). 2、添加一条IP地址与服务器名称的对应记录,如: 172.168.10.24 myserver 也可以在 SQL Server 的客户端网络实用工具里面进行配置,后面会有详细说明。 其次,使用 telnet 命令检查SQL Server服务器工作状态: telnet 1433 如果命令执行成功,可以看到屏幕一闪之后光标在左上角不停闪动,这说明 SQL Server 服务器工作正常,并且正在监听1433端口的 TCP/IP 连接;如果命令返回"无法打开连接"的错误信息,则说明服务器端没有启动 SQL Server 服务,也可能服务器端没启用 TCP/IP 协议,或者服务器端没有在 SQL Server 默认的端口1433上监听。 接着,我们要到服务器上检查服务器端的网络配置,检查是否启用了命名管道,是否启用了 TCP/IP 协议等等。我们可以利用 SQL Server 自带的服务器网络使用工具来进行检查。 点击:程序 -> Microsoft SQL Server -> 服务器网络使用工具,打开该工具后看到的画面如下图所示:
从这里我们可以看到服务器启用了哪些协议。一般而言,我们启用命名管道以及 TCP/IP 协议。 点中 TCP/IP 协议,选择"属性",我们可以来检查 SQK Server 服务默认端口的设置,如下图所示: 一般而言,我们使用 SQL Server 默认的1433端口。如果选中"隐藏服务器",则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接。 检查完了服务器端的网络配置,接下来我们要到客户端检查客户端的网络配置。我们同样可以利用 SQL Server 自带的客户端网络使用工具来进行检查,所不同的是这次是在客户端来运行这个工具。 点击:程序 -> Microsoft SQL Server -> 客户端网络使用工具, 打开该工具后看到的画面如下图所示:
从这里我们可以看到客户端启用了哪些协议。一般而言,我们同样需要启用命名管道以及 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 自带的客户端工具中,在应用程序中我们也会遇到类似的错误信息,例如:
Code: 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]超时已过期.
首先,让我们来详细看以下的示意图来了解一下使用 ODBC 和使用 OLE DB 连接 SQL Server 有什么不同之处。
从上图中,我们可以看出在实际使用中,应用程序创建和使用各种 ADO 对象,ADO 对象框架调用享用的 OLE DB 提供者。为了访问 SQL Server 数据库,OLE DB 提供了两种不同的方法:用于 SQL Server 的 OLE DB 提供者以及用于 ODBC 的 OLE DB 提供者。这两种不同的方法对应于两种不同的连接字符串,标准的连接字符串写法如下所示: 1、使用用于 SQL Server 的 OLE DB 提供者: 使用 SQL Server 身份验证: