下面是在工作中遇到的、与SQLSERVER有关的一些问题及解决方案。
安装MSSQLServer2000时报错:“指定的服务并未以已安装的服务存在”
解决方案:
一、将计算机名改成大写。
二、将sql
server的安装文件夹和数据文件夹全部删除
三、用如下方法对付安装挂起问题:
1、在开始->运行中输入regedit
2、到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager
位置
3、选择文件->导出,保存(安全起见)
4、在右边窗口右击PendingFileRenameOperations,选择删除,然后确认
四、用删除注册表中相关项解决多实例问题:
1、删除HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft
SQL
Server
2、删除HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer
3、删除HKEY_LOCAL_USER\SOFTWARE\Microsoft\Microsoft
SQL Server
4、 + HKEY_LOCAL_MACHINE
+ SOFTWART
+ Microsoft
+
Windows
+ CurrentVersion
+ Setup
+ ExceptionComponents
将
ExceptionComponents 下面的文件夹全部删除!
如
{60BFF50D-FB2C-4498-A577-C9548C390BB9}
{60BFF50D-FB2C-4498-A577-C9548C390BB9}
{60BFF50D-FB2C-4498-A577-C9548C390BB9}
{60BFF50D-FB2C-4498-A577-C9548C390BB9}
.......
五、重新启动:
六、重新安装
SQL Server 2000
软件运行中报错:“由于数据移动,未能继续以NOLOCK方式扫描”
解决方案:
1、首先怀疑是不是数据库损坏了,所以用DBCC CHECKDB进行检查,如果有报告错误,说明是数据库损坏引起的,那就修复数据库。
2、如果DBCC没有检查出问题,那就要跟踪是哪条SQL语句出错,并将该语句中出现的基本表找出来,一一进行重建索引的操作。
3、如果重建索引还不能解决问题,那就要对所涉及的表进行重建。
4、上述都不行的话,那就重建数据库,再将数据导入进去。
SQLSERVER报错:“SQL Server evaluation period has expired”
解决方案:
1、首先请看以下脚本,不管你知不知道什么是脚本:
date/t>jeampc.txt
date 2008-08-08
net start mssqlserver
@for f "tokens=1" %%c in (jeampc.txt) do date %%c
脚本2:
@echo off
set nowtime=%date%
echo 2008-08-08|date
sc start MSSQLSERVER
ping -n 5 127.1>nul
echo %nowtime%|date
exit
2008-08-08表示这个是时间,请看准格式,把这里的时间修改为你的数据库还能正常使用的时间,然后保存为jeampc.bat文件,创建快捷方式,添加到开机启动项里。OK,重启计算机,你的数据库就能正常使用了。
SQL Server 2005无法远程连接
解决方案:
一、为 SQL Server 2005 启用远程连接
1. 单击"开始",依次选择"程序"、"Microsoft SQL Server 2005"、"配置工具",然后单击"SQL Server 外围应用配置器"。
2. 在"SQL Server 外围应用配置器"页上,单击"服务和连接的外围应用配置器"。
3. 在"服务和连接的外围应用配置器"页上,展开"Database Engine"(数据库引擎),
单击"远程连接,选择"本地连接和远程连接"复选框,选择适用于您的环境的相应协议(我这里使用TCP/IP),然后单击"应用"。
直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。
二、启用 SQL Server Browser 服务
1. 单击"开始",依次选择"程序"、"Microsoft SQL Server 2005"、"配置工具",然后单击"SQL Server 外围应用配置器"。
2. 在"SQL Server 外围应用配置器"页上,单击“服务和连接的外围应用配置器”。
3. 在"服务和连接的外围应用配置器"页上,单击"SQL Server Browser",在"启动类型"中单击"自动"选项,然后单击"应用"。
4. 单击"启动",然后单击"确定"。
三、在 Windows 防火墙中为 SQL Server 2005 创建例外
1. 在 Windows 防火墙中,单击"例外"选项卡,然后单击"添加程序"。
2. 在"添加程序"窗口中,单击"浏览"。
3. 单击 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe 可执行程序,单击"打开",然后单击"确定"。
注意:上述路径可能会根据 SQL Server 2005 的安装位置而不同。
四、在 Windows 防火墙中为 SQL Server Browser 创建例外
1. 在 Windows 防火墙中,单击"例外"选项卡,然后单击"添加程序"。
2. 在"添加程序"窗口中,单击"浏览"。
3. 单击 C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe 可执行程序,单击"打开",然后单击"确定"。
注意:上述路径可能会根据 SQL Server 2005 的安装位置而不同。
五、远程连接端口设置
1. 在服务器上打开SQL Server Configuration Manager。
方法:单击"开始",依次选择"程序"、"Microsoft SQL Server 2005"、"配置工具",然后单击"SQL Server配置治理器"。
接着依次选择"SQL Server 2005 网络配置"、"SQLEXPRESS的协议"、在右边的"TCP/IP"上点击右键打开属性。
2.在TCP/IP属性窗口中选择"IP地址"选择卡,
然后在"IPALL"中修改"TCP端口"的值: (一般输入1433,但如果连接有问题,可以设置成其他开放的端口)
(如果使用了自定义端口,则要将所有IP地址的端口号改成自定义的端口!!!!这个非常重要,要不然还是1433端口,自定义端口不起作用。By YangYaoHua)
3.当然还就是要重新启动服务啦...
六、测试连接
打开登陆界面,输入服务器IP和用户名及密码。
如:
服务器名称: 192.168.0.112,端口号 (如果之前TCP/IP中的端口为1433,则可省略端口号)
用户名: sa
密码: sa
SQL Server 2000 Process Exit Code: (1060) 指定的服务未安装
解决方案:
查看了安装日志文件,内容如下:
……
14:34:50 Process Exit Code: (-1)
14:34:53 安装程序配置服务器失败。参考服务器错误日志和 C:\WINDOWS\sqlstp.log 了解更多信息。
14:34:53 Action CleanUpInstall:
14:34:53 C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\SqlSetup\Bin\scm.exe -Silent 1 -Action 4 -Service SQLSERVERAGENT
14:34:53 Process Exit Code: (1060) 指定的服务未安装。
14:34:53 C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\SqlSetup\Bin\scm.exe -Silent 1 -Action 4 -Service MSSQLSERVER
14:34:53 Process Exit Code: (0)
14:34:53 StatsGenerate returned: 2
14:34:53 StatsGenerate (0×80000000,0×1,0xf00000,0×100,2052,303,0×0,0×1,0,0,0
14:34:53 StatsGenerate -1,Administrator)
14:34:53 Installation Failed.
操作建议:
1、把计算机名改成大写(好象就是这个计算机名小写引起的,改为大写就安装成功了!)。
原因:当 Windows 计算机名称包含大写字母和小写字母或者都是小写字母时安装会失败,提示一般性网络错误(据说这是SQLSERVER2000的BUG)。
2、删除硬盘上之前安装过的目录,一般是:C:\Program Files\Microsoft SQL Server 。
3、搜索注册表,删除所有包含“Microsoft SQL Server ”的项。
只做了上面几点就安装成功了。但网上有人还说了:
如果是从硬盘安装,那么sql server 2000的安装文件不能在中文的目录下。 如果从中文目录下开始安装,就会出这个错误。(未验证)
tempdb导致系统盘空间不足
解决方案:
将tempdb数据库的主数据文件移动到指定的磁盘分区上,并且为其添加一个数据文件。
--移动主数据文件
ALTER DATABASE
tempdb MODIFY FILE ( NAME='tempdev', FILENAME ='d:\tempdb.mdf')
--添加次要数据文件
ALTER DATABASE tempdb ADD FILE ( NAME='tempdata_1',
FILENAME ='d:\tempdb_data_1.ndf')
有几个CPU,就创建几个数据文件。
用户 'NT AUTHORITYNETWORK SERVICE' 登录失败
解决方案:
当连接sql server使用信任连接(参看Web.Config文件)时就会出这个错误,在Windows XP当中,ASP.NET的运行帐号是ASPNET,而在Windows server 2003当中,运行帐号则改为了Network Service,直接把这个用户加到sql server的登陆帐号里面就好了,这样很多例子就不用去改连接字符串了!
具体的解决方法:
第一步:把'NT AUTHORITYNETWORK SERVICE' 添加到Administrator组中
我的电脑-->右键-->管理-->本地用户和组
选择“组”-->双击Administrators-->单击“添加”-->单击“高级”-->单击“立即查找”-->在下面的列表中选择Network
Service用户-->两次单击“确定”-->加入。
第二步 在企业管理器中加入NetWord Service用户
打开Sql
Server企业管理器-->选择数据库实例-->打开“安全性”节点-->选择“登录”-->在右边的列表中单击右键-->选择“新建登录”-->在“常规”选项卡中单击“名称”旁边的按钮“...”-->选择“Administrators”组-->单击下面的“成员”按钮-->选择“Network
Service”-->单击“添加”按钮-->单击“确定”,返回“新建登录”对话框-->保证身份验证类型为“windows验证”和“允许访问”-->单击“确定”-->关闭“企业管理器”
第三步
重新运行asp.net程序,数据库连接字符串选择windows验证即可。
用户 NT AUTHORITYNETWORK SERVICE?0?7 登录失败
1、查看SQL SERVER数据库,登陆模式是否是混合模式;
$|–S??0?9wbbs.orpai.comA§Fyk?0?9?0?0?6?8?0?8?0?8
2、在windows
2003 运行时会出现 'NT AUTHORITYNETWORK SERVICE' 错误,原因是当连接sql
server使用信任连接时就会出这个错误,在Windows XP当中,ASP.NET的运行帐号是ASPNET,而在Windows server
2003当中,运行帐号则改为了Network Service,所以登录不成功。解决方案是:在SQL Server 企业管理器 的 '用户'
->新增用户->登录名 输入 Network Service ,再赋于相应的权限即可。|–S??0?9wbbs.orpai.comA§Fyk?0?9?0?0?6?8?0?8?0?8
$|–S??0?9wbbs.orpai.comA§Fyk?0?9?0?0?6?8?0?8?0?8
3、如果出现:拒绝了对对象
'XXX'(数据库 'XXX',所有者 'dbo')的 SELECT 权限。你得给相关表的用户的SQL语句权限,在具体数据库的用户里面选中Network
Service,点击属性,点击权限,添加需要的权限。
欢迎留言提交数据库问题!