【问题标题】:Attaching .mdf file error in SQL Server 2005在 SQL Server 2005 中附加 .mdf 文件错误
【发布时间】:2014-01-21 21:28:41
【问题描述】:

我正在尝试在 SQL Server 2005 中附加一个 .mdf 文件并收到此错误:

无法打开物理文件“C:\server\db\main.mdf”,操作系统错误5:“5(error not found)”,(Microsoft SQL server,错误:5120)

什么可能导致这个错误?

【问题讨论】:

  • 此 SQL Server 是在您的本地计算机上,还是在远程计算机上?你确定main.mdf文件存在于服务器机器上的那个位置(如果你的SQL Server不在远程机器上) t 在您自己的 PC 上运行)

标签: sql sql-server-2005


【解决方案1】:

在“新查询窗口”上运行以下查询并获取服务帐户名称。

declare @sqlser varchar(20)
EXEC master..xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='SYSTEM\CurrentControlSet\Services\MSSQLSERVER',
@value_name='objectname', @value=@sqlser OUTPUT
PRINT 'Account Starting SQL Server Service:' +convert(varchar(30),@sqlser)

获取服务帐户 (S/A) 后,请尝试以下步骤以提供对文件的完全权限。

第一步:右键单击mdf和ldf文件所在的文件夹“”,点击属性。

第 2 步:点击安全选项卡。

第 3 步:点击添加按钮并添加 sql 服务帐户 (S/A)。

第四步:提供“完全控制”权限并点击确定。

第 5 步:验证 mdf 和 ldf 都具有修改权限。

第 6 步:附加数据库!

source

转到运行
输入 services.msc 并按 Enter
在服务控制管理器中找到以下与您的版本对应的服务。

对于 SQL Server 2000

MSSQLSERVER -- 默认实例

MSSQL$instancename -- 用于命名实例

适用于 SQL Server 2005 和 SQL Server 2008

SQL Server (MSSQLSERVER) -- 默认实例

SQL Server (instancename) -- 用于命名实例

选中 SQL 服务的“登录身份”,并为文件夹中的 ID 提供修改权限。

【讨论】:

  • 查询不起作用 - 出现此错误:RegOpenKeyEx() 返回错误 2,“系统找不到指定的文件。”消息 22001,级别 1,状态 1
  • 声明@sqlser varchar(20) EXEC master..xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='SYSTEM\CurrentControlSet\Services\MSSQLSERVER', @value_name='objectname', @value= @sqlser OUTPUT PRINT '账户启动 SQL Server 服务:' +convert(varchar(30),@sqlser)
  • 嗯,很奇怪。我尝试通过查询附加 mdf,但仍然收到相同的错误:无法打开物理文件“C:\MuServer\DB\MuOnline.mdf”。操作系统错误 5:“5(未找到错误)”。
  • 我之前可以从这个文件夹运行 .bak 但现在我不能运行 .mdf/ldf
  • 奇怪,现在出现此错误:无法打开数据库“主”,因为它是 661 版。此服务器支持 611 版及更早版本。不支持降级路径。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-21
  • 2023-03-25
  • 2010-12-21
  • 1970-01-01
  • 2010-11-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多