扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
一、出现“配置服务器失败,请参考系统日志说明”和安装过程进度条退回。原因:系统配置不符合Microsoft SQL Server Desktop Engine安装要求。
创新互联公司:于2013年成立为各行业开拓出企业自己的“网站建设”服务,为成百上千家公司企业提供了专业的网站制作、网站设计、网页设计和网站推广服务, 定制制作由设计师亲自精心设计,设计的效果完全按照客户的要求,并适当的提出合理的建议,拥有的视觉效果,策划师分析客户的同行竞争对手,根据客户的实际情况给出合理的网站构架,制作客户同行业具有领先地位的。
解决办法:MSDE 2000 要求安装 Microsoft Internet Explorer 5.0 或更高版本。最小安装便已足够,Internet Explorer 不必是默认浏览器。 (1)控制面板”中,双击“网络连接”。 (2)在“高级”菜单中,单击“高级设置”。 (3)在“适配器和绑定”选项卡上,确定选中了“Microsoft网络的文件和打印机共享”。如果下列任一安全策略已被设置为“禁止安装”,则 MSDE 2000 安装将失败:●Windows XP 的本地安全策略“设备:未签名驱动程序的安装操作”。●Windows 2000 的本地安全策略“未签名非驱动程序的安装 操作”。如果使用了“禁止安装”设置,则必须在安装 MSDE 2000 之前将该设置更改为“默认继续”。如有必要,可以在完成安装之后将该策略还原为以前的设置。说明 “禁止安装”不是这些安全策略的默认设置。要设置这些策略,请执行下列操作:1、在“控制面板”中,双击“管理工具”。2、双击“本地安全策略”。3、展开“本地策略”。选中“安全选项”。确保在安装 MSDE 2000 之前,右窗格中的下列选项被设置为“默认继续”:对于 Windows NT 和 Windows 2003:“设备:未签名驱动程序的安装操作”。对于 Windows 2000:“未签名非驱动程序的安装操作”。重新安装前将已经安装的sqlserver目录删除。二、出现“指定的实例名无效”原因:将SQL Server没有从添加删除程序中删除。并将已经安装的sqlserver目录删除。也有可能你的某项服务不能启动,导致安装失败!在重新安装前配置服务一下服务!
解决办法:
1.请重新启动以下服务:COM+ System Application、Application Management、ASP.NET State Service、Distributed Transaction Coordinator、HTTP SSL、Remote Procedure Call (RPC) Locator、server做法:开始-运行-services.msc 到右边一个找吧将其属性改为“自动”,已经是自动的,就不要改了,改完了,再点击启动服务!
执行安装向导期间出错,有关详细信息,您可以查看安装日志和/或单击帮助按钮。
1)添加/删除程序中彻底删除sql
server。
2)将没有删除的sql
server目录也删除掉。安装目录通常在这里:C:\Program
Files\Microsoft
SQL
Server,要将这个文件夹全部删除掉!
3)打开注册表编辑器,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager中找到PendingFileRenameOperations项目,并删除它。这样就可以清除安装暂挂项目。
4)删除注册表中跟sql
server相关的键。
其实估计只要做第3步就可以搞定,这样就可以清除安装暂挂项目。自己是先走了1,2,4,最后做了3才搞定。所以估计3才是最关键的。我解决时也是这样的。---------郁时中
2008-09-24
如果上面还是不能得到解决
那么再试下下面的:
将以下两个从注册表中删除,一定可以解决SQL挂起问题:
一、开始\运行\输入regedit回车
+HKEY_LOCAL_MACHINE
+SYSTEM
+CurrentControlSet
+Control
+Session
Manager下的FileRenameOperations删掉
二、+HKEY_LOCAL_MACHINE
+SOFTWARE
+Microsoft
+Windows
+CurrentVersion
+Setup
+ExceptionComponents下的东西全部删掉如:
{077ACEC7-979C-40AB-9835-435BA1511E0D}
{30C7234B-6482-4A55-A11D-ECD9030313F2}
{3FDF25EE-E592-4495-8391-6E9C504DAC2B}
{60204BB3-7078-4F70-8F69-68297621941C}......
总之有几项,就删几项,删掉后重启,再装SQL
Server
把HKEY_CURRENT_USER\Software\Microsoft\Microsoft
SQL
Server,
和HKEY_LOCAL_MACHINE\SOFTWARE\Microso
搞笑的qq表情
ft\Microsoft
SQL
Server全部删掉,(注意要把Microsoft
SQL
Server文件夹整个删掉),然后重起。
再装就应该没有问题了
最后的话:
还有一种可能,那就是你所正在用的安装的文件本身就有问题,还不如从网上再down一个sql2005安装文件!重新安装。当然,安装前,将之前的内容全部卸载干净!
排除法:
拖一个数据控件如dataGridView,新建一个数据库连接,看下能否连接上,如果能,说明连接字符串有问题,如果不能,看下面:
(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)。
2、关闭网站服务器的INTERNET共享。
1、检查防火墙设置和1433端口设置正确;
2、如果出现“找不到网络路径”的报错,那么最好先PING一下它的IP地址。如果PING不通,那么需要先确认它是否连在网络或者网络连通性是否正常。然后查看是否启用了防火墙或者屏蔽掉了相应的端口。如果PING IP地址是正常的,但PING目标机器的计算机名不通,则需要查看是事网络名称解析有问题。关于如何诊断名称解析问题,可以先查看是所有客户端机器有问题还是某一台机器有问题。如果是所有机器的名称解析都有问题,那么你需要到网络的DNS或WINS服务器上检查了。如果只是某一台机器有问题,你需要先检查一下hosts和lmhosts文件;如果正常,可以重新注册一下DNS名字(ipconfig/reisterdns)。
----正常;
3、如果出现“xxx计算机无法访问,您可能没有权限使用网络资源。请与这台服务器的管理员联系以查明您是否有访问权限”的报错,这可能是计算机的安全设置被改动过了,导致目标计算机无法被访问。可以采取以下步骤解决:
---存在这个问题,通过以下方法来解决
a. 打开“我的电脑”,在菜单上选择“工具”-“文件夹选项”-“查看”,清除“使用简单文件共享(推荐)”的选择。
b. 右键点击“我的电脑”,选择“管理”,选择“本地用户和组”-“用户”,右键点击Guest用户,选“属性”,清除“帐户已停用”的选择。
c. 点击“开始”-“运行”,输入secpol.msc,选择左边的“本地策略”-“用户权力指派”,双击右边的“从网络访问此计算机”,保证其中有Everyone,双击左边的“拒绝从网络访问此计算机”,保证其是空的。
d. 选择左边的“本地策略”-“安全选项”,a.确认右边的“网络访问:本地帐户的共享与安全模式”为“经典”;b.确认右边的“Microsoft网络客户:为通讯启用数字签名(总是)”为“已停用”;c.确认右边的“Microsoft网络客户:为通讯启用数字签名(如果服务器允许)”为“已启用”;d.确认右边的“Microsoft网络服务器:为通讯启用数字签名(总是)”为“已停用”;e.确认右边的“Microsoft网络服务器:为通讯启用数字签名(如果服务器允许)”为“已启用”。
4、用ODBC连接,结果一切OK。
Microsoft Network Monitor
这是微软提供的网络抓包工具
虽然它是微软提供的,但所有的协议parser解析代码全部都是开源的,采用其支持的特有脚本语言编写,易理解、易扩展;
它自带协议parser比较全面,同时有一个开源社区提供持续支持;
另外,它也提供API帮助我们开发自己的网络抓包、协议分析工具。
针对TDS协议解析需求:
Network Monitor自带TDS协议解析器和UI比较友好
Network Monitor自带TDS协议解析器在解析和结果展示方面更全面,以下是一个画面片段,显示了一个SQL Batch包。
先了解一下SQLSERVER的加密阶段
一共有两个阶段
在认证阶段,SQLSERVER会使用自生成的自签名证书,加密客户端发过来的登陆用户名和密码
在数据传输阶段,如果不使用证书,那么数据是使用明文在网络上进行传送的
大家可以看一下这篇文章:
SQL Server 连接加密 (1) -- SQL Server connection encyption
网上有很多制作证书的教程,但是制作证书都比较麻烦,客户端和服务器端都要弄很多东西。
详细制作证书的过程可以参考园子里的这篇文章:
在SQL Server 2005 中开启SSL(图文结合)
当然这篇文章不是讲解这个network monitor抓包工具的,所以轻轻带过就算了
那么,不制作证书怎么加密传输的数据啊????
答案就是:同样使用在认证阶段的自生成的自签名证书
详细步骤:
步骤1:在SQLSERVER服务器端这边设置强行加密
步骤2:重启SQLSERVER,只有重启SQLSERVER设置才能生效
步骤3:打开network monitor,新建一个capture
步骤4:启动capture,开始捕获
步骤5:在客户端这边连上服务器端的SQLSERVER,然后你会在network monitor里的看到SSMS这个进程已经出现在Network Conversations窗口
步骤6:选中他,你会在Frame Summary窗口看到帧信息
步骤7:如果你在服务器端开启了“强行加密”,那么收到的数据包都会是加密的
大家在Protocol Name这一栏看到的是TLS协议,而不会是TDS协议
步骤8:查看帧数据
步骤9:如果没有加密的明文数据,network monitor就能够查看出来,并且Protocol Name这一栏显示的是TDS协议,因为数据包并没有使用TLS协议进行封装
TIPS:当关闭了SSMS的查询窗口之后,连接还是存在的
很多人会问,关闭了连接,怎么连接还存在,客户端为什么还会跟服务器端进行通信?????
实际上,这个是客户端的连接池机制,客户端不断发送keep alive数据包给服务器,下次有同样的连接进行重用了,不需要再进行三次握手o(∩_∩)o
总结
本人介绍了不使用制作证书的方式来对传输的数据进行加密的方法,实际上设置客户端而不设置服务器端也是可以的
不过设置客户端比较麻烦,还需要在连接字符串里加上encrypt属性设置为Yes
设置服务器端和设置客户端的加密的区别
服务器端:所有的连接都是加密的
客户端:只是设置了加密的那个连接是加密的,其他没有设置加密的连接依然是明文传输数据
当然,使用SQLSERVER自生成的证书安全性是不及自己制作的证书的安全性高!!
相关连接:
加密与 SQL Server 的连接
使用自签名证书加密的 SSL 连接不提供强安全性。它们容易在传输中途受到攻击。在生产环境中或在连接到 Internet 的服务器上,不应依赖使用自签名证书的 SSL。
始终要对客户端应用程序与 SQL Server
连接时传输的凭据(在登录数据包中)进行加密。SQL Server
将使用可信证书颁发机构颁发的证书(如果可用)。如果未安装可信证书,则在启动实例时 SQL Server
将生成自签名证书,并使用自签名证书对凭据进行加密。自签名证书有助于提高安全性,但它不提供针对通过服务器进行的身份欺骗的保护。如果使用自签名证书,
并且 ForceEncryption 选项的值设置为“是”,则将使用自签名证书对通过网络在 SQL Server
和客户端应用程序之间传输的所有数据进行加密
1、在SQLServerManagementStudio中,打开要在其中创建作业的SQLServer的实例,或者打开包含要向其中添加步骤的作业的实例。2、SQLServer代理,然后执行下列操作之一:若要创建新的作业,请右键单击“作业”,再单击“新建”。若要使用现有作业,请“作业”,右键单击该作业,再单击“属性”。 3、在“常规”页上,如果要创建新的作业,请提供作业名称,选择所有者和作业类别,还可以选择提供作业说明。4、若要使作业可以进行安排,请选择“已启用”。5、单击“步骤”,再单击“新建”。6、提供一个步骤名称,然后基于将要运行该作业的 dtexec 实用工具(dtexec.exe)的版本在“类型”列表中选择一种作业步骤类型:若要使用由系统自动调用的 dtexec 实用工具版本来运行作业,请选择“SQLServerIntegrationServices包”。在运行SQLServer和SQLServer代理的32位计算机上,此设置将调用32位版本的 dtexec 实用工具。在安装和运行64位版本的SQLServer和SQLServer代理的64位计算机上,此设置将调用64位版本的 dtexec 实用工具。在只安装和运行32位版本的SQLServer和SQLServer代理的64位计算机上,此设置将调用32位版本的 dtexec 实用工具。若要在非默认版本的 dtexec 实用工具中运行作业,请选择“操作系统(CmdExec)”,然后输入用于调用 dtexec 实用工具特定版本的命令行。若要创建随后可以将其粘贴到作业步骤中的命令行,可以使用执行包实用工具(dtexecui.exe)。例如,假设您希望在32位模式下从64位SQLServer代理作业中运行包。对于“类型”,选择“操作系统(CmdExec)”,然后输入用于调用32位版本的dtexec 实用工具的命令行。 若要从SQLServer代理作业中运行SQLServer2000DTS包,请选择“操作系统(CmdExec)”,然后输入一个命令行或使用一个批处理文件以调用 dtsrun 实用工具(dtsrun.exe)。若要创建随后可以将其粘贴到作业步骤中的命令行,可以使用执行包实用工具(dtexecui.exe)。7、在“运行身份”列表中,选择该作业将要使用的代理帐户和凭据。有关详细信息,请参阅以下主题:如何为SQLServer代理设置服务启动帐户(SQLServer配置管理器) 如何创建SQLServer代理的代理帐户(Transact-SQL) 如何修改SQLServer代理的代理帐户(Transact-SQL)8、在“常规”选项卡上,选择包源。如果源是SQLServer或SSIS包存储区,请提供服务器名,选择要使用的身份验证模式,然后提供包的名称,或单击省略号按钮“(…)”,接着选择该包。如果源是文件系统,请提供包的路径和名称,或单击省略号按钮“(…)”并找到该包。重要提示:对于受密码保护的SSIS包,请单击“配置”选项卡,在“包密码”对话框中输入密码。否则,执行受密码保护包的SQLServer代理作业将失败。9、若要指定命令行选项,请执行下列操作:单击“命令文件”选项卡,指定包含包所使用的选项的文件。单击“命令行”选项卡,编辑或还原命令行选项。单击“配置”选项卡,添加配置文件,还可以选择将已配置的变量导出到文件中。单击“数据源”选项卡,选中连接管理器复选框,然后更新连接字符串。 单击“执行选项”选项卡,指定包运行时的行为,例如,如果出现警告包是否失败。单击“日志记录”选项卡,添加日志提供程序。选择“日志提供程序”列表中的一个日志提供程序,然后键入连接字符串。单击“设置值”选项卡,将属性和变量映射为值。注意:属性路径使用此语法:\Package\.。根据包结构的不同,容器可能包括其他容器,在这种情况下,嵌套的容器由反斜杠(\)分隔。例如,Package\MyForeachLoop\MySequence\MyExecuteSQLTask.Description。单击“验证”选项卡,指定是否只有签名的包才可以运行,并指定运行的包的版本。10、单击“确定”。
1. [开始]--[运行] regedit 回车
2. 找到以下注册表子项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\80\Tools\ClientSetup
3. 右键单击 ClientSetup 注册表子项, [新建]--[字串值]。
4. 重命名注册表子项,创建 SqlPath , 然后按 Enter。
5. 双击, SqlPath 注册表子项, 然后键入“C:\Program Files\Microsoft SQL Server\80\Tools” 在数值数据框中。
6. 单击[确定],然后关闭注册表编辑器。
7. [开始]--[运行] cmd,输入 regsvr32 "C:\Program Files\Microsoft SQLServer\80\Tools\Binn\sqlmmc.dll" 然后单击[确定]。
C:\Program Files\Microsoft SQL Server\80\Tools路径要在系统中存在
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流