SQLServer 附加数据库后出现只读或失败的解决方法
- 格式:doc
- 大小:112.50 KB
- 文档页数:3
单位一台单机刷卡的机器,sql2000数据库,数据库名后面有“(置疑)”字样,程序无法使用。
从网上搜到方法:解决办法:在SQL-Server企业管理器中,新建同名数据库(这里假设为Test)后,停止数据库,把损坏的数据库文件Data.mdf和Test_log.LDF覆盖刚才新建数据库目录下的Data.mdf和Test_log.LDF,同时删除Test_log.LDF文件;启动数据库服务,发现数据库名Test后面有“置疑”字样。
不要紧,打开SQL自带查询分析器,分别执行如下SQL语句:第一、exec sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE第二、update sysdatabases set status=32768 where name='数据库名'第三、DBCC REBUILD_LOG ('数据库名','D:\database\Test_Log.LDF')--这个没执行成功!!第四、update sysdatabases set status=0 where name='数据库名'第五、restore database 数据库名WITH RECOVERY第六、exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE按照此方法操作,应该能修复数据库正常访问了。
如果问题依然存在,最笨的一个方法就是新建另一个数据库,把原数据库(Test)各个表的数据导出到新建数据库表中。
============================================================补充说明:用上面的六步把数据库置疑的问题解决了,但是数据库表里还有损坏的表(inf_gdscode),把坏表导出的时候也不成功。
SQLServer数据库连接失败错误及解决方法SQL Server 自带的客户端工具(以企业管理器为例)连接SQL Server时,最常见的错误有如下一些:1、SQL Server 不存在或访问被拒绝ConnectionOpen (Connect())2、用户'sa'登录失败。
原因:未与信任SQL Server 连接相关联。
3、超时已过期。
下面我们依次介绍如何来解决这三个最常见的连接错误。
第一个错误“SQL Server 不存在或访问被拒绝“通常是最复杂的,错误发生的原因比较多,需要检查的方面也比较多。
一般说来,有以下几种可能性:1、SQL Server名称或IP地址拼写有误;2、服务器端网络配置有误;3、客户端网络配置有误。
要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因。
首先,检查网络物理连接:ping 服务器IP地址或者ping 服务器名称如果ping 服务器IP地址失败,说明物理连接有问题,这时候要检查硬件设备,如网卡、HUB、路由器等。
还有一种可能是由于客户端和服务器之间安装有防火墙软件造成的,比如ISA Server。
防火墙软件可能会屏蔽对ping、telnet 等的响应,因此在检查连接问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口。
如果ping 服务器IP地址成功而ping 服务器名称失败,则说明名字解析有问题,这时候要检查DNS 服务是否正常。
有时候客户端和服务器不在同一个局域网里面,这时候很可能无法直接使用服务器名称来标识该服务器,这时候我们可以使用HOSTS文件来进行名字解析,具体的方法是:1、使用记事本打开HOSTS文件(一般情况下位于C:\WINNT\system32\drivers\etc).2、添加一条IP地址与服务器名称的对应记录,如:172.168.10.24 myserver也可以在SQL Server 的客户端网络实用工具里面进行配置,后面会有详细说明。
SQl server 2008 附加数据库失败如何解决
通过附加功能添加现成的数据库是非常方便的,然而有时会出现附加数据库失败。
那么,我们该如何解决此问题?
方法一、
1.
找到要添加数据库的.mdf文件,点击右键,选择属性。
2.
在属性页面点击安全,选择Authenticated Users,单击编辑
3. 3
Authenticated Users权限中选择完全控制,点击确定,点击属性界面的确定。
4.
同理,右键点击数据库的.ldf文件,打开属性。
按以上步骤再次设置即可。
5.
完成以上步骤,再进行附加数据库,这时就可以。
END
方法二、
1.打开数据库实例的安装目录,打开DATA文件夹。
(如我的实例目录地
址为:D:\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA 也可能当时安装时装在C盘了)
2.将要附加的数据库.mdf文件和.ldf文件,剪切或复制到DATA
文件夹里。
3.完成以上步骤,再次附加数据库。
这时就可以了。
SQL S erver数据库连接失败错误及解决方法在使用SQL S erver的过程中,用户遇到的最多的问题莫过于连接失败了。
一般而言,有以下两种连接SQ L Ser ver 的方式,一是利用SQ L Ser ver 自带的客户端工具,如企业管理器、查询分析器、事务探查器等;二是利用用户自己开发的客户端程序,如ASP脚本、VB程序等,客户端程序中又是利用ODBC或者OL E DB等连接S QL Se rver。
下面,我们将就这两种连接方式,具体谈谈如何来解决连接失败的问题。
一、客户端工具连接失败在使用S QL Se rver自带的客户端工具(以企业管理器为例)连接SQLServe r时,最常见的错误有如下一些:1、SQLServe r 不存在或访问被拒绝Conne ction Open(Conn ect())2、用户'sa'登录失败。
原因:未与信任SQL Serv er 连接相关联。
3、超时已过期。
下面我们依次介绍如何来解决这三个最常见的连接错误。
第一个错误"SQL S erver不存在或访问被拒绝"通常是最复杂的,错误发生的原因比较多,需要检查的方面也比较多。
一般说来,有以下几种可能性:1、SQL Serv er名称或IP地址拼写有误;2、服务器端网络配置有误;3、客户端网络配置有误。
要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因。
首先,检查网络物理连接:ping<服务器I P地址>或者p ing <服务器名称>如果pi ng <服务器IP地址> 失败,说明物理连接有问题,这时候要检查硬件设备,如网卡、HUB、路由器等。
SQLServer附加数据库报错⽆法打开物理⽂件,操作系统错
误5的图⽂解决教程
问题描述:
附加数据时,提⽰⽆法打开物理⽂件,操作系统错误5。
如下图:
问题原因:可能是⽂件访问权限⽅⾯的问题。
解决⽅案:找到数据库的mdf和ldf⽂件,赋予权限即可。
如下图:
找到mdf和ldf⽂件,本演⽰以ldf为例。
1.点击⽂件右键属性-->安全-->编辑
2.编辑-->添加
3.添加-->⾼级
4.⾼级-->⽴即查找-->搜索结果中找到-->Everyone-->确定-->确定
5.确定-->默认选中的Everyone⽤户-->Everyone的权限-->勾选"完全控制"即会把下⾯所有未勾选的都默认勾选上。
-->确定-->确定。
即Everyone的权限完成。
以上所述是⼩编给⼤家介绍的SQL Server附加数据库报错⽆法打开物理⽂件,操作系统错误5的图⽂解决教程,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
在此也⾮常感谢⼤家对⽹站的⽀持!。
SQLServer附加数据库之后出现只读或失败的解决方法
SQLServer 附加数据库之后出现只读或失败的解决方法
方法一:
碰到这中情况一般是使用的 sa 或者其它 SQL Server 身份验证登录的,只要改为 Windows 身份验证,再附加数据库即可。
方法二:
右键选择数据库–> “属性” –> “选项” –> “状态”,发现“数据库为只读”这一项为True,改为False,如果能够修改的话,那么恭喜你,你的人品不错哦!
我在修改的.时候又报了这样一个错误:
这种情况下,找到你的数据文件和日志文件,右击“属性”-->“安全”,添加一个“Network Service”账户,或者直接修改Users 用户权限,赋予该账户完全控制的权限即可。
连接SQL server数据库出现错误怎么办?如何修复数据库?很多朋友在连接SQL server数据库的过程中,经常会出现数据库报错的的情况,很多用户都对报错的原因无法理解,而网络上对于数据库报错的解决方法也没有详细的说明,用户无法采取有效的措施对数据库故障进行解决,进而无法找回数据库文件。
针对这种情况,下面我们就来了解一下数据库出错的原因及修复数据库的方法吧!一般而言, SQL Server 数据库有两种连接方式,一是利用SQL Server自带的客户端工具,如企业管理器、查询分析器、事务探查器等;二是利用用户自己开发的客户端程序,如ASP 脚本、VB程序等,客户端程序中又是利用 ODBC 或者 OLE DB 等连接 SQL Server。
打开 SQL Server 数据库出错的可能原因主要有以下几点:1.“SQL Server 不存在或访问被拒绝”1)SQL Server名称或IP地址拼写有误2)服务器端网络配置有误3)客户端网络配置有误2.“无法连接到服务器,用户xxx登陆失败”该错误产生的原因是由于SQL Server使用了“仅 Windows“的身份验证方式,因此用户无法使用SQL Server的登录帐户(如 sa )进行连接。
3.提示连接超时如果遇到第三个错误,一般而言表示客户端已经找到了这台服务器,并且可以进行连接,不过是由于连接的时间大于允许的时间而导致出错。
对于 SQL Server 数据库常见的一些错误,用户可以根据数据库出现的报错提示寻找相应的解决方案,这样才能保证数据库被连接上,从而保证数据库文件的安全。
如果用户无法在网络上找到相应的解决方法,或者那些方法尝试之后还是无法解决问题,用户可以将在线咨询数据恢复专家,或者将设备直接拿到该数据恢复中心,专业的数据库修复专家会帮助用户解决数据库出现的故障,帮助用户恢复数据库文件。
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 <服务器IP地址>或者ping <服务器名称>如果ping <服务器IP地址> 失败,说明物理连接有问题,这时候要检查硬件设备,如网卡、HUB、路由器等。
还有一种可能是由于客户端和服务器之间安装有防火墙软件造成的,比如ISA Server。
防火墙软件可能会屏蔽对ping、telnet 等的响应,因此在检查连接问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口。
SQLServer附加数据库后出现只读或失败的解决⽅法解决此问题的⼏个关键点如下:1、该现象只会出现在NTFS⽂件系统中。
2、由NTFS⽂件系统的访问权限导致。
⼀般⼿⼯操作的解决⽅案如下:1、控制⾯板—>⽂件夹选项—>查看关闭“使⽤简单⽂件共享(推荐)”2、选择存放数据库⽂件的⽂件夹,右键选择属性,这时会多出⼀个“安全”选项卡,选择最后⼀个⽤户,将该⽤户的权限设为“完全控制”。
经过这两步操作后,数据库附加失败或附加后只读的问题即可解决。
下⾯重点讲这两步,⽤C#代码的实现,因为当我们为项⽬打包后,不可能让⽤户⼿⼯来执⾏这些操作1、C#关闭简单⽂件共享的代码实现在百度、Google搜索此问题解决⽅法时,很多的操作⽅法并不正确,经过⾃⼰实际操作测试,正确⽅法如下:注册表⽂件:Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]"forceguest"=dword:00000000批处理:reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v forceguest /t REG_WORD /d 0x00000000 /f如果选中此项,则将上述 0x00000000 改为 0x00000001。
通过修改注册表的⽅式实现代码如下:Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine;Microsoft.Win32.RegistryKey software = key.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Lsa", true); software.SetValue("forceguest", 0);2、C#修改指定⽂件夹的⽤户访问权限代码实现如下:(将该⽤户的权限设置为可写)string path = this.Context.Parameters["targetdir"];//得到⽂件夹路径DirectoryInfo dInfo = new DirectoryInfo(path);DirectorySecurity dSecurity = dInfo.GetAccessControl();dSecurity.AddAccessRule(new FileSystemAccessRule(erName, FileSystemRights.CreateFiles, AccessControlType.Allow));dInfo.SetAccessControl(dSecurity);。
解决此问题的几个关键点如下:
1、该现象只会出现在NTFS文件系统中。
2、由NTFS文件系统的访问权限导致。
一般手工操作的解决方案如下:
1、控制面板—>文件夹选项—>查看关闭“使用简单文件共享(推荐)”
2、选择存放数据库文件的文件夹,右键选择属性,这时会多出一个“安全”选项卡,选择最后一个用户,将该用户的权限设为“完全控制”。
经过这两步操作后,数据库附加失败或附加后只读的问题即可解决。
下面重点讲这两步,用C#代码的实现,因为当我们为项目打包后,不可能让用户手工来执行这些操作
1、C#关闭简单文件共享的代码实现
在百度、Google搜索此问题解决方法时,很多的操作方法并不正确,经过自己实际操作测试,正确方法如下:
注册表文件:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] "forceguest"=dword:00000000
批处理:
reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v forceguest /t REG_WORD /d 0x00000000 /f
如果选中此项,则将上述 0x00000000 改为 0x00000001。
通过修改注册表的方式实现代码如下:
Microsoft.Win32.RegistryKey key =
Microsoft.Win32.Registry.LocalMachine;
Microsoft.Win32.RegistryKey software =
key.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Lsa", true); software.SetValue("forceguest", 0);
2、C#修改指定文件夹的用户访问权限代码实现如下:(将该用户的权限设置为可写)
string path = this.Context.Parameters["targetdir"];//得到文件夹路径DirectoryInfo dInfo = new DirectoryInfo(path);
DirectorySecurity dSecurity = dInfo.GetAccessControl();
dSecurity.AddAccessRule(new FileSystemAccessRule(erName, FileSystemRights.CreateFiles, AccessControlType.Allow));
dInfo.SetAccessControl(dSecurity);。