sql 问题汇总.docx
《sql 问题汇总.docx》由会员分享,可在线阅读,更多相关《sql 问题汇总.docx(20页珍藏版)》请在冰豆网上搜索。
sql问题汇总
msde2000安装失败的解决方法
1、安装到最后时,进度条自动回滚,安装不成功
1)添加/删除程序中彻底删除sqlserver。
2)删除目录“C:
\ProgramFiles\MicrosoftSQLServer”
3)查看:
控制面板->管理工具->服务->server的“状态”必须是“已启动”,“启动类型”必须是“自动”
2、安装时提示:
“指定的实例名无效”不能继续安装
1)添加/删除程序中彻底删除sqlserver。
2)删除目录“C:
\ProgramFiles\MicrosoftSQLServer”
3)开始->运行->services.msc到右边找到以下服务:
COM+SystemApplication
ApplicationManagement
ASP.NETStateService
DistributedTransactionCoordinator
HTTPSSL
RemoteProcedureCall(RPC)Locator
将以上服务的“状态”属性改为“已启动”
3、“配置服务器失败,请参考系统日志说明”和安装过程进度条退回
1)添加/删除程序中彻底删除sqlserver。
2)删除目录“C:
\ProgramFiles\MicrosoftSQLServer”
3)“控制面板”->“网络连接”->在菜单“高级”中,单击“高级设置”->在“适配器和绑定”选项卡中,
确定选中了“Microsoft网络的文件和打印机共享”
4)“控制面板”->“管理工具”->本地安全策略”->展开“本地策略”,选中“安全选项”->
“设备:
未签名驱动程序的安装操作”或“未签名非驱动程序的安装操作”,设置为“默认继续”
4、如果还不行,就这样做:
1)添加/删除程序中彻底删除sqlserver。
2)删除目录“C:
\ProgramFiles\MicrosoftSQLServer”
3)打开注册表编辑器,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager中找到
PendingFileRenameOperations项目,并删除
4)重启电脑,以administrator这个用户登录。
5、如果登录时,不显示Administrator怎么办?
单击“开始→运行”,输入regedit后回车,打开注册表编辑器,依次展开
“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\SpecialAccounts\UserList”分支,
将右边的Administrator的值改为1,即可让Administrator账户出现在登录的欢迎屏幕上。
注意:
在“添加/删除程序”中无法卸载sqlserver,或卸载时出现错误提示时:
请同时按下“ctrl+alt+del”这三个按键,在弹出的窗口中,选“进程”选项卡,从中找出
以下两个进程“sqlmangr.exe”、“sqlservr.exe”,点击“结束进程”按钮,结束这两个进
程,然后再执行“添加/删除程序”时即可卸载sqlserver了。
解决方案:
MSDE验证模式、网络配置及帐号口令更改
2009-05-0722:
10
MicrosoftSQLServerDesktopEngine(MSDE)验证模式、网络配置及帐号密码更改
MicrosoftSQLServerDesktopEngine(MSDE)是Microsoft授予开发者非专有使用性的、限制性的、免版税的内部使用许可,安装和使用的“软件”。
您可以复制和使用任何文档的不限数目的副本,条件是这些副本仅为供个人使用。
因此,MSDE对个人来说是免费的数据库软件。
不过,很多时候,在开发过程中,MSDE的验证验证模式、网络配置及sa帐号密码更改等问题时常出现。
笔者今日针对此类问题研究总结如下:
一、MSDE验证模式更改
在开发过程中,有时连接SQL时会提示如下错误:
用户'sa'登录失败。
原因:
未与信任SQLServer连接相关联。
这就是由验证模式引起的。
验证模式可以通过修改注册表项切换。
如果MSDE是作为默认实例安装的,则LoginMode子项位于以下注册表子项中:
HKLM/Software/Microsoft/MSSqlserver/MSSqlServer/LoginMode
如果MSDE是作为命名实例安装的,则LoginMode子项位于以下注册表子项中:
HKLM/Software/Microsoft/MicrosoftSQLServer/%InstanceName%/MSSQLServer/LoginMode
LoginMode注册表子项的值设置为1是Windows身份验证。
如果启用了混合模式身份验证,则此值为2。
要从集成(Windows)身份验证模式切换到混合验证模式,请按以下步骤操作:
1.要停止MSSQLSERVER以及所有其他相关服务(如SQLSERVERAgent)。
2.打开注册表编辑器。
要打开注册表编辑器,请依次单击开始和运行,然后键入:
“regedt32”(不包括引号)
3.找到以下两个子项之一(取决于MSDE是作为默认MSDE实例安装的还是作为命名实例安装的):
HKEY_LOCAL_MACHINE/Software/Microsoft/MSSqlserver/MSSqlServer
-或者
HKEY_LOCAL_MACHINE/Software/Microsoft/MicrosoftSQLServer//MSSQLServer
4.在右窗格中,双击LoginMode子项。
5.在DWORD编辑器对话框中,将此子项的值设置为2。
6.重新启动MSSQLSERVER和SQLSERVERAgent服务以使更改生效。
二、配置MSDE网络连接
有些SQLServer实例和SQLServerDesktopEngine(也称为MSDE)实例可能会作为本地数据存储运行,仅由运行在同一计算机上的应用程序使用。
如果从未向这些MSDE实例进行过网络连接,则这些实例不需要网络支持,此时关闭那些不需要的资源是一个明智的选择。
每一个SQLServer实例或MSDE实例都可以配置为侦听一组特定的网络协议和地址。
如果某一实例不需要网络连接,则关闭不用的网络支持可减少该实例的安全依赖性。
您可以通过将该实例配置为不侦听任何网络协议来做到这一点。
同样的,如果SQLServer或MSDE默认安装没有配置网络连接,也可以通过配置进行修改:
1.如果在计算机上安装了SQLServer客户端工具,请打开MicrosoftSQLServer程序组,然后启动“服务器网络”实用工具。
如果未安装SQLServer客户端实用工具,请运行SQLServerTools\Binn文件夹中的Svrnetcn.exe文件(默认路径:
C:
\ProgramFiles\MicrosoftSQLServer\80\Tools\Binn\SVRNETCN.exe)。
通常情况下,不在计算机上安装SQLServer客户端实用工具的原因是:
该计算机只运行MSDE2000实例,而这些实例不向用户提供使用SQLServer客户端实用工具的许可。
2.在“常规”选项卡上,选择“此计算机上的实例”列表框中的SQLServer实例的名称。
单击默认实例的“服务器名”以将其选中,或为任何指定的实例选择“服务器名/实例名”。
3.要将SQLServer的实例限制为只允许本地连接,请单击“禁用”,直到“启用的协议”列表中不再列出任何协议。
如果您需要在以后更改此设置以允许远程连接,请逆向执行此过程并启用一个或多个协议。
4.单击“确定”。
5.重新启动SQLServer实例,以使所做更改生效
三、更改MSDE登录帐户和口令
輸入下列命令,更改MSDE帐号密码:
1.在正在连接到的MSDE实例的宿主计算机中,打开命令提示符窗口。
2.键入下面的命令,然后按Enter键:
osql-E
在1>提示符下,键入下列命令,然后按Enter键:
1>sp_password@old=null,@new='test',@loginame='sa'
2>go
提示“密码更改成功”后,则将MSDE实例的sa用户口令修改为“test”。
MSDE的安装和介绍
由于要用installshield打包发布系统,我不能把sqlserver那么一大拓都打上,只能用msde这个版本了,原来还以为msde和sqlserver差不多,没想到差的远了,装了半天都没装上,装的时候刷的以下什么都没了我很是郁闷,也不知道装到哪儿了,也不知道安装成功了没有,在开始菜单里面也找不到它的踪影.
一.MSDE介绍
MSDE2000(SQLServer桌面引擎,MSSQLServerDesktopEngine)是微软公司提供的一个免版税、可再分发的数据库引擎,它与MicrosoftSQLServer2000完全兼容。
MSDE2000体积小,系统要求低,支持SQLServer2000其它版本的大多数功能,但不包括图形管理工具(企业管理器、查询分析器等等)。
MSDE是一种使能技术,它提供了本地的数据存储,并完全跟MicrosoftSQLServer®version7.0的代码是兼容的。
这种技术将Access从一个简单的文件服务器数据库应用程序转变为一个适用于任意规模组织的、功能极强的、具有高度的可扩展性的客户/服务器解决方案。
MSDE2000系统要求:
1、操作系统
MSDE2000专为在下列操作系统中运行而设计:
MicrosoftWindows98
MicrosoftWindowsNTWorkstation4.0ServicePack5(SP5)或更高版本
?
MicrosoftWindowsNTServer4.0ServicePack5(SP5)或更高版本
?
MicrosoftWindowsNT4.0ServerEnterpriseEditionServicePack5(SP5)或更高版本
?
MicrosoftWindows2000Professional
?
MicrosoftWindows2000Server
?
MicrosoftWindows2000AdvancedServer
?
MicrosoftWindows2000DatacenterServer
?
MicrosoftWindowsXP
?
MicrosoftWindowsServer2003
处理器:
使用最低为166MHz的Pentium处理器的计算机。
内存:
最低32兆字节(MB)的RAM。
注意:
Microsoft建议您使用64MB或更大内存。
根据操作系统的要求,可能需要更多内存。
硬盘:
最低44MB的可用硬盘空间。
其他:
MicrosoftInternetExplorer5.0或更高版本。
注意:
在安装MicrosoftInternetExplorer5.0之前,您必须安装MicrosoftWindowsNT4.0ServicePack5或更高版本。
2.MSDE和MicrosoftAccess性能比较
注意:
1.MSDE所处理的数据库要求每个数据库数据总量小于2GB。
2.最大支持5个在线用户,每个用户的会话连接数没有限制。
(但在测试中好像没有发现这个限制)
二.安装说明
MSDE是随SQLSERVER2000同时发布的,可以在SQLSERVER2000安装光盘上找到(不是SP4版),也可以从微软官方网站下载,地址是:
(页面下方的SQL2000.MSDE-KB884525-SP4-x86-ENU.EXE)
在MSDE文件夹中有个文件setup.ini,是对安装程序前的配置,常见格式如下:
[Options]
targetdir="d:
\setup\msde\binn"//程序安装目录
datadir="d:
\setup\msde\data"//数据文件存放目录
instancename="zanb"//实例名,可以避免和默认实例名冲突
securitymode="sql"//验证模式为混合模式,默认为windows认证
SAPWD="sa"//用户sa的密码,好像是SP4版才管用
USEDEFAULTSAPWD//sa的密码为空,默认亦为空
DISABLENETWORKPROTOCOLS=0//不允许网络连接,设置0为允许
双击SETUP即可安装到指定目录,安装完毕后需要执行C:
\ProgramFiles\MicrosoftSQLServer\80\Tools\Binn的sqlmangr.exe来启动sqlserver。
另外一种安装方法是利用MSDE中msm下的合并模块,可以将其无缝的集成到自己的msi安装程序里。
步骤如下:
备注:
所有VisualStudio.NET开发产品都提供WindowsInstaller软件。
1.启动VisualStudio.NET。
2.新建一个安装项目。
a.在文件菜单上,指向新建,然后单击项目。
将出现“新建项目”窗口。
b.在“项目类型”树中,单击安装和部署项目节点,然后在右窗格中的“模板”窗口下,单击安装项目。
3.键入该项目的名称和位置,然后单击确定。
备注:
确保解决方案资源管理器在Microsoft开发环境中处于打开状态。
若要打开它,请在查看菜单上单击解决方案资源管理器。
4.将该项目的搜索路径设置为MSDE合并模块所在的文件夹:
a.在解决方案资源管理器中选择该安装项目。
b.在“属性”窗口中,找到SearchPath项。
备注:
如果“属性”窗口未打开,请在查看菜单上单击属性窗口。
c.键入MSDE合并模块所在位置的完整路径。
通常,该路径为X:
\MSDE\MSM和X:
\MSDE\MSM\1033,其中X是光盘驱动器的驱动器盘符。
5.将MSDE2000合并模块添加到该项目:
在解决方案资源管理器中右键单击该项目的名称,单击添加,然后单击合并模块选项。
6.找到合并模块文件的位置,然后选择要添加到该项目中的合并模块。
备注:
应考虑到依存项,这很重要。
某些合并模块要求其他合并模块(这些模块称为依存项)也在该项目中才能正确生成安装程序包。
7.添加完所有必需的合并模块后,就可以生成WindowsInstaller程序包了:
a.在解决方案资源管理器中单击该项目。
b.在Microsoft开发环境中的生成菜单上,单击批生成。
这将在第4步中指定的位置生成并创建一个MSDE2000WindowsInstaller程序包。
注:
1.步骤四中的属性窗口是在菜单视图–其它窗口–属性窗口,而不是单击右键的属性页(或视图-属性页)
三.管理MSDE
MSDE没有像SQLSERVER那样的可视化企业管理器,但可以通过OSQL.EXE来进行数据库管理。
(当然利用SQLSERVER2000自带的企业管理器和分析器可以使用,比如A机器装的是SQLSERVER2000,B机器使用MSDEsp4,则可以利用企业管理器和分析器连接MSDEsp4,也可以从网上下载绿色版企业管理器和分析器,我也收集了一个并进行了整合,有兴趣的朋友可以给我信息)
如果是安装后第一次使用,需要进行以下设置:
1.安装完毕后,默认管理帐户sa的密码为空(不管在setup.ini中是否设置了密码),需要进行密码设置。
a.利用OSQL.EXE登陆。
在命令提示符中敲入:
osql-Usa-Sservername\instancename(回车)
b.出现提示:
Password:
(回车)
c.键入:
sp_password@old=null,@new='sa',@loginame='sa'(回车)
d.键入:
go(回车)
返回成功信息。
2.企业版程序会自动添加用户和初始化数据库,如果需要增加用户,可以使用sp_addlogin存储过程创建一个使用SQLServer身份验证建立SQLServer连接的新登录帐户。
下面的示例为一个名叫“zanb”的用户创建了一个密码为“zhianbang”的SQLServer登录:
则执行:
键入:
EXECsp_addlogin'zanb','zhianbang'(回车)
键入:
go(回车)
用sa创建一个数据库。
createdatabasecmsdb
go
把该数据库授权给zanb拥有
usecmsdb
sp_changedbownerzanb
go
退出,使用zanb登陆
osql-SLIZP-Uzanb-Pzhianbang
就可以对cmsdb数据库做操作了
osql命令符合Transact-SQL规范,具体命令请参考SQLSERVER2000自带的帮助文档。
3.更改身份验证模式
如果不能确定如何验证MSDE安装的身份验证模式,可以查看相应的注册表项。
默认情况下,对于Windows身份验证,WindowsLoginMode注册表子项的值设置为1。
如果启用了混合模式身份验证,则此值为2。
LoginMode子项的位置取决于您是将MSDE作为默认MSDE实例安装还是作为命名实例安装。
如果MSDE是作为默认实例安装的,则LoginMode子项位于以下注册表子项中:
HKLM\Software\Microsoft\MSSqlserver\MSSqlServer\LoginMode,如果MSDE是作为命名实例安装的,则LoginMode子项位于以下注册表子项中:
HKLM\Software\Microsoft\MicrosoftSQLServer\%InstanceName%\MSSQLServer\LoginMode
注意:
切换身份验证模式之前,必须设置sa密码,以免暴露潜在的安全漏洞。
四.使用MSDE
由于MSDE和SQLSERVER2000是完全兼容的,即对与程序员来说,对数据库的连接,MSDE和SQLSERVER2000是完全一样的,这里不再赘述。
MSSQL2000数据库提示“缺少repbr.dll”怎么解决
MSSQL2000数据库带病工作数日后终于忍不住了,网上搜了半天,终于找到了解决方法,开始—运行—CMD,CDC:
\ProgramFiless\CommonFiles\MicrosoftShared\Repostry,然后运行regsvr32repbr.dll。
如下图:
把repbr.dll和repbrui.dll重新注册试试
SQLSEVER2000安装的挂起问题及相关解决方案REBBRUI.rllismissing
(转载)sql2000安装之后经常出现的问题,缺少repodbc.dll
示例2:
SQL2005中使用SA登录时,出现报错,错误提示关键字"18456"
解决方案:
原因:
可能是启用了强制实施密码策略,实施了域中的安全选项中的策略,最快办法禁用,并重设密码。
或按策略慢慢设置。
示例1:
如果数据库文件(非系统数据库文件)遇到错误的时候,该怎么办?
。
以下仅适用于非master,msdb的数据库。
解决:
1)备份故障数据库日志文件,
backuplogdbnameTODISK='X:
\DBname.bak'WITHNO_TRUNCATE
2)恢复上一个完整数据库备份
RESTOREDATABASEtestFROMDISK='X:
\dbBackup.bak'WITHNORECOVERY
3)恢复最近的日志
RESTORELOGtestFROMDISK='X:
\dbbackup.bak'WITHRECOVERY
完整示例:
示例13:
如何使用事务日志恢复到时间点.(一般出现在删除错了数据内容.)
示例12:
如何解决日志文件超大问题,常见于数据完整恢复模式下。
ALTERLOGINsaWITHPASSWORD='P@ssword',CHECK_EXPIRATION=OFF,CHECK_POLICY=OFF;
ALTERLOGINsaENABLE;EXECsp_change_users_login@Action='Report';--1、报告孤立用户.
GO;
EXECsp_change_users_login@Action='Update_One',@UserNamePattern='',@LoginName='';
实例11:
selectconvert(datetime,'15-OCT-79')提示错误,在另一服务器上OK.,错误提示:
消息241,级别16,状态1,第1行从字符串向datetime转换时失败。
原因:
与数据库服务器的字符集设置有关。
另一台服务器字符集是us_english。
而我这台是"简体中文"的。
解决:
SETLANGUAGEus_english
selectconvert(datetime,'15-OCT-79')
SETLANGUAGE简体中文
实例10:
从一服务器拷贝*.BAK文件到另一服务器操作还原数据库时出错,提示信息:
mssql备份集中的数据库与现有的数据库不同.
分析:
数据库存储路径不同,所有在还原时选项中,选择覆盖,且路径要对应更改。
或使用脚本,如下。
RESTOREDATABASE[aDirectory]
FROMDISK=N'X:
Sql2005BackupaDirectory.bak'WITHFILE=1,--指定数据库备份文件路径
MOVEN'aDirectory'TON'X:
Sql2005DataaDirectory.mdf',--指定使用数据库的MDF路径.
MOVEN'aDirec