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を使用します。
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(アクセスが拒否されました)を検出しました。
Everyone
に変更するためのC:\Users
へのアクセスを許可することでした。これは開発用ラップトップの問題でしかなかったため、セキュリティを変更する余裕がありました私はこの問題を抱えていましたが、AzureStorageEmulatorDb57_log.ldfがMSSQLLocalDBインスタンスを削除したときに%USERPROFILE%ディレクトリにまだ存在していた理由がわかりませんが、そのファイルをドロップした後問題はなくなりました。
マシンをリセット(およびファイルを保持)した後、この問題に遭遇しました。私にとって、エミュレーターを起動できないというエラーのため、Visual Studio 2019でAzure関数を実行できませんでした。
リセット後の新しいアカウント(と思います)と同じ権限の問題があり、DBにアクセスする権限がなかったようです。
私はこれを解決しました:
%USERPROFILE%/AzureStorageEmulatorDb[number].mdf
AzureStorageEmulator.exe start
を管理者権限で実行しますその後、問題なくAzure Functionを実行できました。
私は自分のマシンへのユーザーログインを変更したこの問題に出くわしました。以前のユーザーアカウントからデータベースを作成しました。データベースファイルを新しいユーザーアカウントにコピーしましたが、このエラーが発生しました。許可の問題のようです。
このデータベースのmdfおよびldfファイルの保存場所を見つける必要があります。私の場合は「C:\ Users\yourUserName」に保存されていました
これらのファイルを削除して、AzureStorageEmulator.exe initを再度実行するだけで、新しいmdfファイルとldfファイルが作成されます。
この解決策は一般に推奨されませんが、試すことができます。 AzureStorageEmulatorは、どういうわけか、ディレクトリに設定されたlocalDBがフルアクセスにアクセスできないため、アクセス許可が制限されていると思います。
今ではうまくいきました。後でunsercurityと考える必要があります。
これらの手順 に従って手動で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;
私はdbインスタンスを初期化して成功しましたが、SQLServerは2017です。
次に、解決策を検索します doc は、問題データベースを削除すると問題が解決すると言っています。たぶん、あなたはそれをドキュメントの手順に従って試すことができます。
それでも質問がある場合はお知らせください。