web-dev-qa-db-ja.com

WindowsアカウントでSqlLocalDBインスタンスを開始できません

私は管理者であり、次のコマンドを実行するだけです。

 sqllocaldb start v11.0

結果:

 Start of LocalDB instance "v11.0" failed because of the following error:
 Error occurred during LocalDB instance startup: SQL Server process failed to sta
 rt.

イベントビューアログイベントID:528

Windows API呼び出しWaitForMultipleObjectsがエラーコードを返しました:575。Windowsシステムエラーメッセージ:{アプリケーションエラー}アプリケーションが正しく起動できませんでした(0x%lx)。 [OK]をクリックしてアプリケーションを閉じます。行で報告:3621。

別の(ユーザーおよび管理者)アカウントを試しましたが、問題はありませんでした。

SQLLocalDB.msiの2012バージョンをアンインストールして再インストールしましたが、うまくいきませんでした。何かアイデアと修正はありますか?

12
Nime Cloud

ログオフしてから別の管理者としてログインし、ユーザープロファイルフォルダーの名前を変更しました。 Windows 7で自分のアカウントに切り替えました。ユーザープロファイルフォルダーとして、新しく作成されたTEMPフォルダーがあります。写真のように前後のフォルダ構造を比較しました。プラス; LocalDBインスタンスが正常に開始されました。

localdb2.png

ログオフし、ユーザー名を元の名前に変更しました。再度ログに記録し、そのフォルダにジャンプしました:

C:\ Users\MYUSERNAME\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0

そしてエラーログを見ました。アクセスが拒否されました!

http://Pastebin.com/ASeJGqpw

解決策:v11.0フォルダ内のすべてのファイルを削除するだけです。 書き込み権限v11.0フォルダに付与します。別のインスタンスを作成できない場合は、Instancesフォルダーへの書き込み権限を付与します。

7
Nime Cloud

通常は%localappdata%\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0フォルダの下にあるエラーログを確認すると、大きなヒントが得られます。

the管理者アカウント(an管理者ではない)として再度ログインし、Run As Administratorでコマンドプロンプトを開始します。次に、これを実行します。

sqllocaldb share v11.0 MyInstance

それが目標である場合は、このインスタンスのsysadminとしてWindowsアカウントを明示的に追加することができます。そう:

sqllocaldb start MyInstance

次に、SQLCMD、Management Studio、接続しているものに接続して実行します。

CREATE LOGIN [Domain\Username] FROM WINDOWS;
EXEC sp_addsrvrolemember N'Domain\Username', N'sysadmin';

これで、Windowsアカウントとして再度ログインすると、次のコマンドを使用してこのインスタンスを開始できるはずです。

sqllocaldb start MyInstance

(O/Sやアカウントの切り替え方法によっては、すでに開始されている場合があります。)

次に、Domain\Usernameは、SQLCMD、SSMSなどを使用して、(localdb)\.\MyInstanceを使用して接続できるはずです。

12
Aaron Bertrand

Localdbおよびsqlインスタンスが現在の(ドメインユーザー)とは異なるユーザーでインストールされたときにこの問題が発生したため、V11.0フォルダーをクリアし、古いパスからmdfファイルとldfファイルを貼り付けてこれを修正しました。

C:\Users\{inseryouroldusernamehere}\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0

それが役に立てば幸い。

2

ファイルfix.batを作成し、次のテキストをその中に入れます:

net localgroup Administrators "%userdomain%\%username%" /add

net localgroup Users "%userdomain%\%username%" /add

sqllocaldb d test

rd /s/q "%localappdata%\Microsoft\Microsoft SQL Server LocalDB\Instances\test"

sqllocaldb c test -s

管理者としてfix.batを実行し、コンピュータを再起動します。 fix.batをもう一度実行します。

私はこの方法を使用して、この問題を10回以上解決しました。

1
user104430

Services.mscを開き、次のサービスを再起動しました。

  • SQL Serverブラウザー
  • SQL Server VSSライター

それが役に立てば幸い

1

私は一度これを持っていて、単純な再起動で解決しました。 他の人も のためにそれを解決したようです。 NimeAarons 回答する前に試してみる価値があるかもしれません

1
Robert MacLean

Localdbインスタンスに実際の情報がない場合は、単に削除できます。これは、データベースが自動的に初期化される場合(EF DbInitializerまたはマイグレーションなどを使用)に適しています。

この問題を解決するために私がしたことは次のとおりです。

  • コマンドプロンプトウィンドウを開く
  • 実行sqllocaldb delete ****、 どこ ****は、デフォルトのインスタンス(通常はMSSqlLocalDbまたは問題のあるインスタンス)の場合は空白です
  • 実行sqllocaldb create ****
  • 実行sqllocaldb start ****

これは私にとってはうまくいきましたが、あなた自身のリスクでこれを行い、そのインスタンスに貴重なデータがないことを再確認し、正しいインスタンスでアクションを実行することを確認してください。

0
Shimmy

この質問は現在Google検索結果で他の質問よりも高いため、ここに投稿します。私の場合、LocalDBはIISから起動できませんでした。 this SOコメントの提案 に従ってC:\ Windows\System32\inetsrv\config\applicationHost.configを変更し、setProfileEnvironment = "true"をアプリケーションプールに追加しました 完全なIISでのLocalDBの使用、パート1:ユーザープロファイル で説明されているように、私は実際にapplicationPoolDefaultsのprocessModelのsetProfileEnvironment属性をtrueに変更しました。すべての新しいアプリプールに対してそれを行います。

0
csrowell