我与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。.
答案 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>
Everyone
修改C:\Users
的权限。这只是我的开发笔记本电脑上的一个问题,因此我有能力进行安全更改答案 1 :(得分:3)
答案 2 :(得分:3)
重置机器(并保留文件)后,我遇到了这个问题。对我来说,由于无法启动模拟器的错误,我无法在Visual Studio 2019中运行Azure功能。
在重置后,我好像与新帐户(我认为)有相同的权限问题,没有接触数据库的权限。
我通过以下方式解决了此问题:
%USERPROFILE%/AzureStorageEmulatorDb[number].mdf
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)
答案 7 :(得分:0)
通常不推荐,但是您可以尝试一下。 我认为AzureStorageEmulator不能完全访问目录中的localDB whitch设置,从而限制了该权限。
现在可以了。您必须稍后再考虑不确定性。
答案 8 :(得分:0)
答案 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 的应用。
启动此应用程序。
如果应用程序表明它正在运行,则先运行 AzureStorageEmulator.exe stop
,否则直接运行 AzureStorageEmulator.exe Start
。应该自动创建您的数据库,至少对我来说是这样。
https://docs.microsoft.com/en-us/azure/storage/common/storage-use-emulator