Impossible de démarrer l'instance SqlLocalDB avec mon compte Windows


11

Je suis l'administrateur et lance simplement la commande:

 sqllocaldb start v11.0

Résultat:

 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.

Journal de l'observateur d'événements ID d'événement: 528

L'API Windows WaitForMultipleObjects a renvoyé le code d'erreur: 575. Le message d'erreur système Windows est: {Erreur d'application} L'application n'a pas pu démarrer correctement (0x% lx). Cliquez sur OK pour fermer l'application. Déclaré à la ligne: 3621.

J'ai essayé un autre compte (utilisateur et administrateur), il n'y a eu aucun problème avec eux.

J'ai désinstallé et réinstallé la version 2012 de SQLLocalDB.msi mais je n'ai pas eu de chance. Avez-vous une idée et une solution?


Visual Studio a eu du mal à démarrer mon projet et j'ai vu la même erreur dans le journal des événements. Corrigé en exécutant sqllocaldb start v11.0.
Andre Luus

Réponses:


12

Vérifiez le journal des erreurs qui généralement sous le dossier %localappdata%\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0vous donnera de grands indices.

- Vous en tant le compte administrateur (non un administrateur) et lancer une invite de commande avec Run As Administrator. Exécutez ensuite ceci:

sqllocaldb share v11.0 MyInstance

Vous souhaiterez peut-être ajouter explicitement votre compte Windows en tant qu'administrateur système sur cette instance si c'est un objectif. Donc:

sqllocaldb start MyInstance

Connectez-vous ensuite avec SQLCMD, Management Studio, qu'avez-vous, et exécutez:

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

Reconnectez-vous maintenant en tant que compte Windows et vous devriez pouvoir démarrer cette instance en utilisant:

sqllocaldb start MyInstance

(Il peut déjà être démarré en fonction de votre O / S et de la façon dont vous avez changé de compte.)

Ensuite, vous Domain\Usernamedevriez pouvoir vous connecter en utilisant SQLCMD, SSMS, etc. en utilisant (localdb)\.\MyInstance.


1
Il s'agit d'une bonne solution de contournement, mais elle ne peut pas expliquer et résoudre le problème.
Nime Cloud

1
@NimeCloud euh, ok, peut-être que quelqu'un d'autre viendra avec une meilleure "correction". <shrug>
Aaron Bertrand

Cela a fonctionné pour moi. Il était lié à l'instance d'origine où l'utilisateur spécifique n'a plus de subventions et, étrangement, il ne peut pas donner accès à quoi que vous fassiez. L'instance partagée a été traitée comme une identité distincte, ce qui lui a donné un nouveau départ où l'application peut désormais se connecter comme auparavant.
Jon P

7

Je me suis déconnecté puis connecté en tant qu'un autre administrateur et j'ai renommé le nom de mon dossier de profil utilisateur. Je suis passé à mon compte dans Windows 7. Il y a un dossier TEMP nouvellement créé comme dossier de mon profil utilisateur. J'ai comparé la structure des dossiers avant et après comme sur l'image. Plus; L'instance LocalDB a démarré avec succès.

localdb2.png

Je me suis déconnecté et j'ai renommé mon nom d'utilisateur en original. Connecté à nouveau et sauté dans ce dossier:

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

Et vu les journaux d'erreurs; Accès refusé!

http://pastebin.com/ASeJGqpw

Solution: supprimez simplement tous les fichiers du dossier v11.0 . Donnez la permission d' écriture au dossier v11.0 . Si vous ne pouvez pas créer une autre instance, accordez une autorisation d'écriture au dossier Instances .


1
Supprimé le dossier v11.0. Puis émis sqllocaldb.exe c v11.0pour le recréer (dans la ligne de commande du développeur VS2013, élevé). Cela l'a résolu.
cheesus dit d'arrêter de tirer les mods le

2

J'avais l'habitude d'avoir ce problème lorsque mon instance localdb et sql était installée avec un utilisateur différent de celui actuel (utilisateur du domaine), j'ai donc résolu ce problème en effaçant le dossier V11.0 et en collant les fichiers mdf et ldf de l'ancien chemin:

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

J'espère que cela aide.



1

J'ai ouvert services.msc et redémarré les services suivants:

  • Navigateur de serveur SQL
  • Sql Server VSS Writer

J'espère que cela aide


1

Créez un fichier fix.bat, mettez-y le texte suivant:

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

Exécutez en fix.battant qu'administrateur, puis redémarrez votre ordinateur. Réexécutez fix.bat.

J'ai utilisé cette méthode pour résoudre ce problème plus de 10 fois.


0

Je poste ceci ici car cette question est actuellement plus élevée dans les résultats de recherche Google que les autres. Dans mon cas, LocalDB n'a pas pu être démarré à partir d'IIS. J'ai suivi la suggestion de ce commentaire SO de modifier C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config pour ajouter setProfileEnvironment = "true" au pool d'applications, comme décrit dans Utilisation de LocalDB avec IIS complet, partie 1: profil utilisateur . J'ai en fait changé l'attribut setProfileEnvironment de processModel de applicationPoolDefaults en true et cela a également fonctionné, ce qui pourrait être mieux, vous n'avez donc pas besoin de vous souvenir de le faire pour chaque nouveau pool d'applications.


0

Si vous ne disposez d'aucune information réelle dans l'instance localdb, vous pouvez simplement la supprimer. C'est un bon choix si votre base de données est automatiquement initialisée (à l'aide d'EF DbInitializerou de migrations, etc.).

Voici ce que j'ai fait pour résoudre le problème:

  • Ouvrez une fenêtre d'invite de commande
  • Exécuter sqllocaldb delete ****, où ****est vide pour l'instance par défaut (généralement MSSqlLocalDbou l'instance gênante
  • Exécuter sqllocaldb create ****
  • Exécuter sqllocaldb start ****

Cela a fonctionné pour moi, mais faites-le à vos risques et périls et assurez-vous de vérifier que vous n'avez pas de données précieuses dans cette instance, et assurez-vous d'effectuer les actions sur la bonne instance.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.