web-dev-qa-db-ja.com

Azure Storage Emulatorが「データベース 'AzureStorageEmulatorDb57'が存在しません」で初期化に失敗する

Azure Storage Emulatorで問題が発生しています。データベースを再初期化しようとしたところ、以下のエラーが発生しました。

これはVisual Studio 2019 Previewをインストールした後のことですが、これは単なる偶然かもしれません。 1時間ほど実行してみましたが、あきらめ、「ファイルを保持する」オプションでマシンをリセットしました。VisualStudio 2017とAzureツールを再インストールしましたが、同じ問題が引き続き発生します。

リセットが少し思い切って聞こえることは知っていますが、VS 2019はVS2017でAzure機能を壊しました。

Sqllocaldb create(バージョン13.1.4001.0)を使用して手動でDBを作成した場合、DBは正常に作成されますが、initは引き続き同じメッセージで失敗します。

何か案は?

C:\ Program Files(x86)\ Microsoft SDKs\Azure\Storage Emulator> AzureStorageEmulator.exe init Windows Azure Storage Emulator 5.7.0.0 command line tool Found SQL Instance(localdb)\ MSSQLLocalDB。 SQLインスタンス '(localdb)\ MSSQLLocalDB'にデータベースAzureStorageEmulatorDb57を作成しています。データベース 'AzureStorageEmulatorDb57'を作成できません:データベース 'AzureStorageEmulatorDb57'は存在しません。有効なデータベース名を指定してください。使用可能なデータベースを表示するには、sys.databasesを使用します。1つ以上の初期化アクションが失敗しました。ストレージエミュレーターを再度実行する前に、これらのエラーを解決してください。エラー:データベース 'AzureStorageEmulatorDb57'を作成できません:データベース 'AzureStorageEmulatorDb57'は存在しません。有効なデータベース名を指定してください。利用可能なデータベースを表示するには、sys.databasesを使用します。

18
Murray Foxcroft
  1. Azureエミュレーターが実行中の場合は停止します。
  2. SSMSを開き、(localdb)インスタンスに接続します。
  3. 「AzureStorageEmulatorDb57」を手動で作成します。
  4. 管理者としてコマンドプロンプトを開きます。
  5. 「AzureStorageEmulator.exe init」を実行します。
  6. VSプロジェクトを実行します。
17
Bill

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 CREATE FILEは、物理ファイル 'C:\ Users {username} AzureStorageEmulatorDb59.mdf'を開くか作成しようとしたときに、オペレーティングシステムエラー5(アクセスが拒否されました)を検出しました。

  • このエラーにより、次の投稿が表示されました: https://dba.stackexchange.com/questions/191393/localdb-v14-creates-wrong-path-for-mdf-files
  • そこで回答を読んだところ、これはSQL Server 2017のバグであることがわかりました。パッチにアクセスできない場合、解決策はEveryoneに変更するためのC:\Usersへのアクセスを許可することでした。これは開発用ラップトップの問題でしかなかったため、セキュリティを変更する余裕がありました
13
aleroy

私はこの問題を抱えていましたが、AzureStorageEmulatorDb57_log.ldfがMSSQLLocalDBインスタンスを削除したときに%USERPROFILE%ディレクトリにまだ存在していた理由がわかりませんが、そのファイルをドロップした後問題はなくなりました。

6
Eugenio Miró

マシンをリセット(およびファイルを保持)した後、この問題に遭遇しました。私にとって、エミュレーターを起動できないというエラーのため、Visual Studio 2019でAzure関数を実行できませんでした。

リセット後の新しいアカウント(と思います)と同じ権限の問題があり、DBにアクセスする権限がなかったようです。

私はこれを解決しました:

  1. Azure Storage Emulator DBファイルを削除しています:%USERPROFILE%/AzureStorageEmulatorDb[number].mdf
  2. 次に、AzureStorageEmulator.exe startを管理者権限で実行します

その後、問題なくAzure Functionを実行できました。

3
Ste Pammenter

私は自分のマシンへのユーザーログインを変更したこの問題に出くわしました。以前のユーザーアカウントからデータベースを作成しました。データベースファイルを新しいユーザーアカウントにコピーしましたが、このエラーが発生しました。許可の問題のようです。

このデータベースのmdfおよびldfファイルの保存場所を見つける必要があります。私の場合は「C:\ Users\yourUserName」に保存されていました

これらのファイルを削除して、AzureStorageEmulator.exe initを再度実行するだけで、新しいmdfファイルとldfファイルが作成されます。

2

この解決策は一般に推奨されませんが、試すことができます。 AzureStorageEmulatorは、どういうわけか、ディレクトリに設定されたlocalDBがフルアクセスにアクセスできないため、アクセス許可が制限されていると思います。

  1. あなたはフォルダのプロパティに行くことができます> sercurity>完全な権限に編集します(私と一緒にディレクトリはuser> Appdataです)。
  2. 次に、エミュレータを再起動します cmd restart the Azure emulator

今ではうまくいきました。後でunsercurityと考える必要があります。

0
Tien Tran

これらの手順 に従って手動でMSSQL 2016 LocalDBをMSSQL 2019にアップグレードした後、Azure Storage EmulatorがLocalDBを内部で使用していることを知らなかったため、エラーが表示されました。

これを修正するには、次のSQLコマンドを使用して、%UserProfile%にあるデータベースを手動で再接続するだけです。

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

私はdbインスタンスを初期化して成功しましたが、SQLServerは2017です。

次に、解決策を検索します doc は、問題データベースを削除すると問題が解決すると言っています。たぶん、あなたはそれをドキュメントの手順に従って試すことができます。

それでも質問がある場合はお知らせください。

0
George Chen

Visual StudioでAzure SDKがインストールされていることを確認します。インストールされていない場合は、機能を追加できます。

Error

No Error

0
Jahuso