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

时间:2018-12-07 16:51:38

标签: azure-storage sql-server-express azure-storage-emulator

我与Azure存储模拟器有问题。我试图重新初始化数据库,并收到以下错误。

这是在安装Visual Studio 2019预览版之后,但这可能只是偶然的缘故。我尝试了一个小时左右才能使其运行,然后放弃并仅使用“保留我的文件”选项重置我的机器,重新安装了Visual Studio 2017和Azure工具,但仍然遇到相同的问题。

我知道重设听起来有些激烈,但是VS 2019在VS2017中破坏了我的Azure函数,它们无法启动,因此我希望进行全新安装。

如果我使用sqllocaldb create(版本13.1.4001.0)手动创建数据库,则可以很好地创建数据库,但是初始化仍然失败,并显示相同的消息。

有什么想法吗?

  

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

14 个答案:

答案 0 :(得分:3)

在为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创建文件遇到操作系统错误5(访问被拒绝。),尝试打开或创建物理文件'C:\ Users {username} AzureStorageEmulatorDb59.mdf'。 / p>

  • 此错误将我引至以下帖子:https://dba.stackexchange.com/questions/191393/localdb-v14-creates-wrong-path-for-mdf-files
  • 从那里的阅读答案中,我发现这是SQL Server 2017中的错误。在无法访问补丁程序的情况下,对我有用的解决方案是授予Everyone修改C:\Users的权限。这只是我的开发笔记本电脑上的一个问题,因此我有能力进行安全更改

答案 1 :(得分:3)

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

答案 2 :(得分:3)

重置机器(并保留文件)后,我遇到了这个问题。对我来说,由于无法启动模拟器的错误,我无法在Visual Studio 2019中运行Azure功能。

在重置后,我好像与新帐户(我认为)有相同的权限问题,没有接触数据库的权限。

我通过以下方式解决了此问题:

  1. 删除Azure存储模拟器数据库文件:%USERPROFILE%/AzureStorageEmulatorDb[number].mdf
  2. 然后以管理员权限运行AzureStorageEmulator.exe start

然后,我能够毫无问题地运行Azure功能。

答案 3 :(得分:2)

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

答案 4 :(得分:2)

these instructions之后将MSSQL 2016 LocalDB手动升级到MSSQL 2019之后,由于我不知道Azure存储模拟器内部使用LocalDB,所以出现了提到的错误。

要解决此问题,我只需要使用以下SQL命令手动重新连接位于%UserProfile%的数据库:

CREATE DATABASE [AzureStorageEmulatorDb510]
    ON (FILENAME = 'C:\Users\<username>\AzureStorageEmulatorDb510.mdf'),   
    (FILENAME = 'C:\Users\<username>\AzureStorageEmulatorDb510_log.ldf')   
    FOR ATTACH;

答案 5 :(得分:1)

我遇到了这个问题,我将用户登录名更改为我的机器。我已经从以前的用户帐户创建了数据库。我已将数据库文件复制到新的用户帐户,但这给了我这个错误。这似乎是一个权限问题。

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

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

答案 6 :(得分:0)

我初始化了数据库实例并成功,但我的SQLServer是2017年。

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

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

答案 7 :(得分:0)

通常不推荐,但是您可以尝试一下。 我认为AzureStorageEmulator不能完全访问目录中的localDB whitch设置,从而限制了该权限。

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

现在可以了。您必须稍后再考虑不确定性

答案 8 :(得分:0)

如果您没有安装Visual Studio,请检查是否已安装Azure SDK。

Error

No Error

答案 9 :(得分:0)

您可以在userprofile目录中找到mdf和ldf文件。只需停止模拟器并将这些文件复制到其他位置,然后将其从userprofile目录中删除即可。 然后再次运行仿真器,它将创建新的mdf和ldf文件。 然后停止仿真器,并将旧文件复制回去,然后重新启动仿真器。这样您就不会丢失任何数据。

答案 10 :(得分:0)

我会帮助您的。首先创建一个sql server本地数据库。 然后转到存储模拟器文件夹 _- Storage Emulator默认安装到C:\ Program Files(x86)\ Microsoft SDKs \ Azure \ Storage Emulator。

然后运行此AzureStorageEmulator.exe init / server

docs:AzureStorageEmulator.exe初始化/ server localhost \ SQLEXPRESS01

答案 11 :(得分:0)

打开 SSMS 并连接到您的 (localdb) 实例。 手动创建“AzureStorageEmulatorDb...”。

答案 12 :(得分:0)

要添加另一个答案,我没有任何 MDF 或 LDF 文件。相反,我在 %USERPROFILE%\AppData\Local\AzureStorageEmulator\AzureStorageEmulator.5.10.config 只有一个配置文件。我也无法使用 SSMS 连接到我的本地 (localdb) 实例。

我将该配置文件中的 SQLInstance 值更改为 localhost 而不是 (localdb)\MSSQLLocalDB,它开始工作。

答案 13 :(得分:0)

您应该有一个名为 Microsoft Azure Storage Emulator 的应用。

enter image description here

启动此应用程序。

如果应用程序表明它正在运行,则先运行 AzureStorageEmulator.exe stop,否则直接运行 AzureStorageEmulator.exe Start。应该自动创建您的数据库,至少对我来说是这样。

enter image description here

https://docs.microsoft.com/en-us/azure/storage/common/storage-use-emulator