Azure存储模拟器无法初始化“数据库'AzureStorageEmulatorDb57'不存在”

问题描述 投票:3回答:6

我遇到Azure存储模拟器的问题。我试图重新初始化数据库并得到以下错误。

这是在安装Visual Studio 2019 Preview之后,但这可能只是一个共同发生。我尝试了一个小时左右让它运行,然后放弃了,只需使用“保存我的文件”选项重置我的机器,重新安装Visual Studio 2017和Azure工具但仍然看到同样的问题。

我知道重置听起来有点激烈但是VS 2019在VS2017中破坏了我的Azure功能,它们不会启动所以我想要一个干净的安装。

如果我使用sqllocaldb create(版本13.1.4001.0)手动创建数据库,则数据库创建正常,但init仍然失败并显示相同的消息。

有任何想法吗?

C:\ Program Files(x86)\ Microsoft SDKs \ Azure \ Storage Emulator> AzureStorageEmulator.exe init Windows Azure存储模拟器5.7.0.0命令行工具找到SQL实例(localdb)\ MSSQLLocalDB。在SQL实例'(localdb)\ MSSQLLocalDB'上创建数据库AzureStorageEmulatorDb57。无法创建数据库'AzureStorageEmulatorDb57':数据库'AzureStorageEmulatorDb57'不存在。提供有效的数据库名称。要查看可用的数据库,请使用sys.databases ..一个或多个初始化操作失败。在尝试再次运行存储模拟器之前解决这些错误。错误:无法创建数据库'AzureStorageEmulatorDb57':数据库'AzureStorageEmulatorDb57'不存在。提供有效的数据库名称。要查看可用的数据库,请使用sys.databases ..

azure-storage sql-server-express azure-storage-emulator
6个回答
5
投票

在为SQL Server 2017安装LocalDb之后,我遇到了同样的问题。这些步骤帮助我解决了我面临的问题:

  • C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator中打开命令行
  • 运行AzureStorageEmulator.exe init /forceCreate
  • 从检查我的错误日志(位于%USERPROFILE%\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB),我看到了 2018-12-21 15:41:13.47 spid65尝试打开或创建物理文件'C:\ Users {username} AzureStorageEmulatorDb59.mdf'时,CREATE FILE遇到操作系统错误5(访问被拒绝。)。
  • 这个错误导致我发到以下帖子:https://dba.stackexchange.com/questions/191393/localdb-v14-creates-wrong-path-for-mdf-files
  • 从那里阅读答案,我收集到这是SQL Server 2017中的一个错误。无法访问补丁,对我有用的解决方案是授予Everyone访问权限以修改C:\Users。这只是我的开发笔记本电脑上的一个问题,所以我可以负担得起改变安全性

4
投票
  1. 如果Azure模拟器正在运行,请将其停止。
  2. 打开SSMS并连接到您的(localdb)实例。
  3. 手动创建“AzureStorageEmulator Db57”。
  4. 以管理员身份打开命令提示符。
  5. 运行“AzureStorageEmulator.exe init”。
  6. 运行你的VS项目。

2
投票

我有这个问题,我不知道为什么当我删除我的MSSQLLocalDB实例时,我的%USERPROFILE%目录中仍然存在AzureStorageEmulatorDb57_log.ldf,但在删除该文件之后问题就消失了。


1
投票

我遇到过这个问题,我将userlogin更改为我的机器。我从之前的useraccount创建了数据库。我已将数据库文件复制到新用户帐户,但它给了我这个错误。这似乎是一个许可问题。

您需要找到此数据库的mdf和ldf文件的已保存位置。就我而言,它存储在'C:\ Users \ yourUserName'中

只需删除这些文件并再次运行AzureStorageEmulator.exe init,它将为您创建新的mdf和ldf文件。


0
投票

我初始化了db实例并且成功了,我的SQLServer是2017。

然后我搜索解决方案和doc说删除故障数据库将解决问题。也许您可以按照文档中的步骤进行尝试。

如果您还有疑问,请告诉我。


0
投票

一般不建议使用此解决方案,但您可以尝试使用它。我认为AzureStorageEmulator以某种方式无法完全访问目录中的localDB whitch设置限制了权限。

  1. 您可以转到文件夹属性>安全性>编辑为完全权限(我的目录是user> Appdata)。
  2. 然后重启模拟器cmd restart the azure emulator

现在它奏效了。你必须考虑以后的不安全感。

© www.soinside.com 2019 - 2024. All rights reserved.